Search code examples
gitmavengithubmaven-release-plugin

Github release from maven-release-plugin


I have a multimodule project where the aggregator is in the root of the project and the parent is in a subdirectory, next to all the other modules

pom.xml (aggregator, inherits from parent)
|---parent
|---module1 (inherits from parent)
|---module2 (inherits from parent)

i'm trying to release my project using maven-release-plugin-2.4.1

I run mvn release:prepare -DdryRun=true and everything works fine, but if i run a real run, not dryRun then i get a problem at the end when trying to push the tag to github:

...
[INFO] Checking in modified POMs...
[INFO] Executing: /bin/sh -c cd "/home/hilikus/dev/Eclipse workspace/JRoboCom" && git add -- jrobocom-parent/pom.xml jrobocom-core/pom.xml jrobocom-simple-gui/pom.xml jrobocom-samples/pom.xml jrobocom-samples/legends/pom.xml jrobocom-samples/simple/pom.xml jrobocom-samples/simple/4Lunch/pom.xml jrobocom-samples/simple/black-jacks/pom.xml jrobocom-samples/simple/bank-jumper/pom.xml pom.xml
[INFO] Working directory: /home/hilikus/dev/Eclipse workspace/JRoboCom
[INFO] Executing: /bin/sh -c cd "/home/hilikus/dev/Eclipse workspace/JRoboCom" && git status
[INFO] Working directory: /home/hilikus/dev/Eclipse workspace/JRoboCom
[INFO] Executing: /bin/sh -c cd "/home/hilikus/dev/Eclipse workspace/JRoboCom" && git commit --verbose -F /tmp/maven-scm-646807004.commit jrobocom-parent/pom.xml jrobocom-core/pom.xml jrobocom-simple-gui/pom.xml jrobocom-samples/pom.xml jrobocom-samples/legends/pom.xml jrobocom-samples/simple/pom.xml jrobocom-samples/simple/4Lunch/pom.xml jrobocom-samples/simple/black-jacks/pom.xml jrobocom-samples/simple/bank-jumper/pom.xml pom.xml
[INFO] Working directory: /home/hilikus/dev/Eclipse workspace/JRoboCom
[INFO] Executing: /bin/sh -c cd "/home/hilikus/dev/Eclipse workspace/JRoboCom" && git symbolic-ref HEAD
[INFO] Working directory: /home/hilikus/dev/Eclipse workspace/JRoboCom
[INFO] Executing: /bin/sh -c cd "/home/hilikus/dev/Eclipse workspace/JRoboCom" && git push https://github.com/theHilikus/JRoboCom.git/jrobocom-aggregator master:master
[INFO] Working directory: /home/hilikus/dev/Eclipse workspace/JRoboCom
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO] 
[INFO] Parent POM ........................................ SKIPPED
...
[INFO] Bank-jumper ....................................... SKIPPED
[INFO] The overall aggregator ............................ FAILURE [3:30.447s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3:32.658s
[INFO] Finished at: Tue Jul 23 22:31:43 EDT 2013
[INFO] Final Memory: 9M/44M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-release-plugin:2.4.1:prepare (default-cli) on project jrobocom-aggregator: Unable to commit files
[ERROR] Provider message:
[ERROR] The git-push command failed.
[ERROR] Command output:
[ERROR] fatal: https://github.com/theHilikus/JRoboCom.git/jrobocom-aggregator/info/refs not found: did you run git update-server-info on the server?
[ERROR] -> [Help 1]

any ideas what this means and how to fix it? as far as i know, i'm following the standard release procedure, the only different (but common) configuration is the separation of the aggregator and the parent poms


Solution

  • The problem seemed to be the "circular" reference where the aggregator inherits from one of the poms that it is aggregating. As soon as I removed that, everything worked.
    So there are basically two simple choices, either merge the parent and the aggregator, or have the SCM info duplicated (or just moved) in the aggregator so that the aggregator doesn't inherit from anyone