2016-05-22 16 views
1

Ich benutze Maven Release-Plugin, um in der Lage zu sein, die jenkins Release-Plugin zu verwenden. Ich benutze ein Multi-Modul-Projekt läuft auf Linux-System (Centos). dafür habe ich die folgenden Plugins Konfiguration Mutter pom hinzugefügt:kann gits Tag nicht an remote als maven release-Prozess senden

<plugin> 
<groupId>org.apache.maven.plugins</groupId> 
<artifactId>maven-release-plugin</artifactId> 
    <version>2.5.3</version> 
    <configuration> 
     <tagNameFormat>[email protected]{project.version}</tagNameFormat> 
     <arguments>-Dmaven.test.skip=true -DskipTests -Dbatch=true</arguments> 
     <tagBase>http://gitcore/user/app/tags</tagBase> 
    </configuration> 
</plugin> 

auch an die Spitze dieser Linien pom.xml Thesen hinzugefügt:

<scm> 
    <connection>scm:git:[email protected]:user/app.git</connection> 
    <developerConnection>scm:git:[email protected]:user/app.git</developerConnection> 
    <url>http://gitcore.company.local/</url> 
</scm> 

Danach habe ich den folgenden Maven Befehl ausführen: mvn -B Release: clean Release: Release vorbereiten: führen

Die Vorbereitung Pässe erfolgreich auch schiebt die Förderung der Pom-Version und ihrer Module (Teilprojekt), um den Ursprung zu erhalten. es erstellt nur lokale Git-Tag mit der richtigen Version, aber nicht erfolgreich, um zu Remote-Push. , was ich nach dem mit X läuft Maven immer ist:

org.apache.maven.lifecycle.LifecycleExecutionException: Fehler Ziel org.apache.maven.plugins auszuführen: Maven-Release-Plugin: 2.5.3: prepare (default-cli) auf Projekt projectParent: SCM kann nicht markiert werden Provider-Nachricht: Der git-push-Befehl ist fehlgeschlagen. Befehlsausgabe: Zugriff verweigert. fatal: Konnte nicht vom Remote-Repository lesen.

Bitte stellen Sie sicher, dass Sie die richtigen Zugriffsrechte haben und das Repository existiert.

Und vor diesen Zeilen, bemerkte ich die folgenden, die auf Drücken des git tag bezogen werden:

[INFO] Executing: /bin/sh -c cd /home/mickey/App/ProjectParent && git push [email protected]:user/app.git refs/heads/release_version_8_0:refs/heads/release_version_8_0 
[INFO] Working directory: /home/mickey/App/ProjectParent 
[INFO] Tagging release with the label v8.0.2... 
[DEBUG] ScmTagPhase :: scmTagParameters remotingTag true 
[DEBUG] ScmTagPhase :: scmTagParameters scmRevision null 
[DEBUG] ScmTagPhase :: fileSet basedir = /home/mickey/App; files = [] 
[INFO] Executing: /bin/sh -c cd /home/mickey/App && git tag -F /tmp/maven-scm-876857130.commit v8.0.2 
[INFO] Working directory: /home/mickey/App 
[INFO] Executing: /bin/sh -c cd /home/mickey/App && git push **[email protected]:user** refs/tags/v8.0.2 
[INFO] Working directory: /home/mickey/App 

Ich versuchte, den letzten Stoß lokal (git push git @ gitcore: user) laufen mit der gleichen Fehler, den ich beim Ausführen von Maven bekam, aber nachdem ich dem Push-Befehl auch den Namen der Datei hinzugefügt hatte, funktionierte es. Ich kann nicht verstehen, warum es nicht den ganzen Befehl von git push mit dem gesamten Tag-Pfad ausführt, wie ich den Pom einfüge.

+0

ich da gerade bemerkt, ist eine andere im Arbeitsverzeichnis, wenn es Tag git kommt. Arbeitsverzeichnis:/home/mickey/App anstelle von Arbeitsverzeichnis:/home/mickey/App/ProjectParent wie in den Protokollen angehängt. ist das irgendwelche Szenen? – user4860092

+0

Ich denke, ich habe es. Ich debuggte das Maven-Release-Plugin, und herausfinden, dass mit einem seltsamen Grund, bevor Sie zum Tagging-Schritt in Git, das Plugin versucht, in einem Ordner oben auf der aktuellen, die es überhaupt kein Projekt ist. – user4860092

Antwort

1

hatte ich ähnliches Problem, aber ich wurde mit flachem Verzeichnis mit mehreren Modulen wie:

release-workspace\ 
| 
|--release-parent 
| |+pom.xml (modules: ../release-module1, ../release-module2) 
|--release-module1 
| |+pom.xml (parent: ../release-parent/pom.xml) 
|--release-module2 
| |+pom.xml (parent: ../release-parent/pom.xml) 

Die Version 2.x nicht Multi-Modul flach Verzeichnis unterstützt. Sie können es hier https://issues.apache.org/jira/browse/MRELEASE-261

Als Abhilfe können Sie auf, Sie eine pom.xml im Stammverzeichnis erstellen

release-workspace\ 
| 
|--release-parent 
| |+pom.xml (parent: ../pom.xml, modules: ../release-module1, ../release-module2) 
|--release-module1 
| |+pom.xml (parent: ../release-parent/pom.xml) 
|--release-module2 
| |+pom.xml (parent: ../release-parent/pom.xml) 
|--pom.xml (modules: release-parent) <-- maven-release-plugin goes