MavenでJenkinsプラグイン( stashNotifier )をリリースしようとしていますが、リリースプラグインの問題に直面しています。
mvn clean release:prepare
エラーなしで完了まで実行されますが、ローカルgitリポジトリで変更されたpom.xmlをコミットできません。バージョン1.0.2をリリースしようとしているブランチのHEADをタグ付けします。これは、リリースを準備する前のローカルブランチの外観です。
* df60768 (HEAD, Origin/develop, develop) upgraded parent pom to version 1.498
* 792766a added distribution management section to pom.xml and amended readme.md
これは後のように見えるものです
* df60768 (HEAD, tag: stashNotifier-1.0.2, Origin/develop, develop) upgraded parent pom to version 1.498
* 792766a added distribution management section to pom.xml and amended readme.md
残念ながら、pom.xmlにはすでに次の開発バージョンが含まれており、これにより、後続のrelease:performがそのスナップショットバージョンをリリースします。
Mavenのコマンド出力からは、git commitコマンドを省略しているように見えます。
[INFO] Checking in modified POMs...
[INFO] Executing: /bin/sh -c cd /Users/gruetter/Dropbox/stashNotifier && git add -- pom.xml
[INFO] Working directory: /Users/gruetter/Dropbox/stashNotifier
[INFO] Executing: /bin/sh -c cd /Users/gruetter/Dropbox/stashNotifier && git status
[INFO] Working directory: /Users/gruetter/Dropbox/stashNotifier
[INFO] Tagging release with the label stashNotifier-1.0.2...
[INFO] Executing: /bin/sh -c cd /Users/gruetter/Dropbox/stashNotifier && git tag -F /var/folders/dr/xxbtyycs1z9dl2_snlj87zrh0000gn/T/maven-scm-678409272.commit stashNotifier-1.0.2
[INFO] Working directory: /Users/gruetter/Dropbox/stashNotifier
[INFO] Executing: /bin/sh -c cd /Users/gruetter/Dropbox/stashNotifier && git Push [email protected]:jenkinsci/stashnotifier-plugin.git stashNotifier-1.0.2
[INFO] Working directory: /Users/gruetter/Dropbox/stashNotifier
[INFO] Executing: /bin/sh -c cd /Users/gruetter/Dropbox/stashNotifier && git ls-files
[INFO] Working directory: /Users/gruetter/Dropbox/stashNotifier
[INFO] Transforming 'Stash Notifier'...
[INFO] Not removing release POMs
[INFO] Checking in modified POMs...
[INFO] Executing: /bin/sh -c cd /Users/gruetter/Dropbox/stashNotifier && git add -- pom.xml
[INFO] Working directory: /Users/gruetter/Dropbox/stashNotifier
[INFO] Executing: /bin/sh -c cd /Users/gruetter/Dropbox/stashNotifier && git status
[INFO] Working directory: /Users/gruetter/Dropbox/stashNotifier
[INFO] Release preparation complete.
Maven 3.0.5を実行しています(--dry-runまたは-DpushChanges = falseなし)。私の効果的なPOMの関連する(と思う)部分は次のとおりです。
[...]
<scm>
<connection>scm:git:git://github.com/jenkinsci/stashnotifier-plugin.git</connection>
<developerConnection>scm:git:[email protected]:jenkinsci/stashnotifier-plugin.git</developerConnection>
<url>https://github.com/jenkinsci/stashnotifier-plugin</url>
</scm>
[...]
<distributionManagement>
<repository>
<id>maven.jenkins-ci.org</id>
<url>http://maven.jenkins-ci.org:8081/content/repositories/releases/</url>
</repository>
<snapshotRepository>
<id>maven.jenkins-ci.org</id>
<url>http://maven.jenkins-ci.org:8081/content/repositories/snapshots</url>
</snapshotRepository>
<site>
<id>github-pages</id>
<url>gitsite:[email protected]/jenkinsci/maven-site.git:plugin-parent/stashNotifier</url>
</site>
</distributionManagement>
[...]
<properties>
[...]
<maven-release-plugin.version>2.2.2</maven-release-plugin.version>
[...]
</properties>
[...]
<build>
[...]
<pluginManagement>
<plugins>
[...]
<plugin>
<artifactId>maven-release-plugin</artifactId>
<version>2.2.2</version>
</plugin>
[...]
</pluginManagement>
[...]
<plugins>
[...]
<plugin>
<artifactId>maven-release-plugin</artifactId>
<version>2.2.2</version>
<configuration>
<goals>deploy</goals>
</configuration>
</plugin>
[...]
</plugins>
</build>
何が間違っていますか?洞察力を事前に感謝します!
リリースプラグインのバージョンではなく、git scmプロバイダーの依存関係を更新することで、(maven 3.0.5を実行している)側の問題を解決しました。
<build>
<plugins>
<plugin>
<artifactId>maven-release-plugin</artifactId>
<version>2.4.2</version>
<dependencies>
<dependency>
<groupId>org.Apache.maven.scm</groupId>
<artifactId>maven-scm-provider-gitexe</artifactId>
<version>1.8.1</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
Git scm 1.8.1バージョンは、gitコミットを正しく作成します(準備およびロールバックの目標でテスト済み)。
編集:maven-release-pluginとmaven-scm-provider-gitexeの異なるバージョンが環境によって必要になる場合があります。詳細については、コメントを参照してください。
私は同じ問題にぶつかりました。#richnouによる解決策が私にとっては有効です(SCM依存関係のアップグレード)。この問題で作成された問題があります。以下のリンクをご覧ください。この問題は、プラグインが解析できないローカライズされたメッセージを「git status」が返すGitの新しいバージョンに関連しています。それが根本的な原因です。この問題はgit scm(1.8.1バージョン)でgitの--porcelain
オプション(簡単に解析可能な出力を返すはずです)を使用して修正されましたが、この修正後、別の問題が発生しました-リポジトリルート(scmタグ)が作業ディレクトリではなく、release:prepare
は引き続き失敗します。この問題は、Git SCMのスナップショットバージョン(まだリリースされていない)で修正されているようです。これは、scm
タグを子pomにコピーすることで回避できます。
上記の解決策が役に立たなかったので、おそらくこれを読んでいるでしょう。私は同じ問題を抱えていて、ここで言及したすべてを試しました。私のバージョンは:maven-release-plugin 2.5
およびgit 1.7.9
私にとってworkedというソリューションはdowngrading maven-release-plugin to version 2.3.2
<build>
<plugins>
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<autoVersionSubmodules>true</autoVersionSubmodules>
</configuration>
</plugin>
</plugins>
</build>
最初に、richnouとvasektからの回答が私の問題を解決しました。言及されたよりも新しいバージョンのためだけにこの回答を投稿したいと思ったので、それらを含む余分な例を挙げておくと良いと思いました。
私は、Maven scm依存バージョンを指定せずにGit 3.3.xでmavenリリースプラグイン2.3.2を実行していたため、スナップショットの問題が発生していました。私にとっては、次のようなMavenリリースプラグインとscm依存関係の両方について、その時点で最新バージョンにアップグレードしたばかりです。
<plugin>
<artifactId>maven-release-plugin</artifactId>
<version>2.5.3</version>
<dependencies>
<dependency>
<groupId>org.Apache.maven.scm</groupId>
<artifactId>maven-scm-provider-gitexe</artifactId>
<version>1.9.5</version>
</dependency>
</dependencies>
</plugin>
これはうまく機能し、リリースバージョンはリリースリポジトリに適切にアップロードされ、スナップショットも期待どおりに機能しました。
maven-release-plugin
を2.5.2にアップグレードすると助けになりました(2.5にアップグレードしても機能しませんでした。一部のユーザーでは機能しますが、システム上の他の新しいソフトウェアによっては機能しません)。新しいプロバイダーを自動的に取り込むと思います。
私はちょうどこの同じ問題に出くわし、他の回答とコメントから、リリースプラグイン自体のバグである可能性が高いと考えました。
私の場合、次のように構成された新しくてほとんど空のプロジェクトでgitとともにプラグインのバージョン2.4を使用していました。
my-repo.git/
module-parent/ # running the release from here
(module-child-1/) # except I hadn't created it yet
(module-child-2/) # except I hadn't created it yet
(このプロジェクトのソースコードは、問題を解決する前にここで見ることができます: 同じ問題を持つ私のプロジェクト 。)
maven-release-plugin:2.4.1のリリースノート を見ると、おそらくMRELEASE-830がそれを解決しているように見えました。
それが実際にwas問題であるかどうかはわかりませんが、私のプロジェクトをプラグインの2.4.1にアップグレードすると解決しました。それもあなたのために問題を解決することを願っています!
私はGit 1.8.xをローカルで使用していますが、同様の問題に遭遇しました:
maven-scm-pluginは
$ git add
$ git status
でもない
$ git commit
Git 1.7.xで別のマシンを使用すると、この問題を回避できます。
注:maven-scm-plugin 1.8.1または1.9、maven-release-plugin 2.4.1または2.4.2を使用してみました。
Cygwin + maven + gitを使用しているときにも同じ問題が発生しました。エラーは表示されませんでしたが、pomの変更をコミットしようとはせず、git status
:
[INFO] Checking in modified POMs...
[INFO] Executing: cmd.exe /X /C "git add -- pom.xml"
[INFO] Working directory: C:\Users\ltheisen\git\caasd-portal-automation
[INFO] Executing: cmd.exe /X /C "git status"
[INFO] Working directory: C:\Users\ltheisen\git\caasd-portal-automation
[INFO] Tagging release with the label portal-automation-0.3.9...
[INFO] Executing: cmd.exe /X /C "git tag -F C:\cygwin64\tmp\maven-scm-1212196933.commit portal-automation-0.3.9"
[INFO] Working directory: C:\Users\ltheisen\git\caasd-portal-automation
[INFO] Executing: cmd.exe /X /C "git Push [email protected]:org-mitre-caasd/portal-automation.git portal-automation-0.3.9"
[INFO] Working directory: C:\Users\ltheisen\git\caasd-portal-automation
[INFO] Executing: cmd.exe /X /C "git ls-files"
[INFO] Working directory: C:\Users\ltheisen\git\caasd-portal-automation
[INFO] Transforming 'portal-automation'...
[INFO] Not removing release POMs
[INFO] Checking in modified POMs...
[INFO] Executing: cmd.exe /X /C "git add -- pom.xml"
[INFO] Working directory: C:\Users\ltheisen\git\caasd-portal-automation
[INFO] Executing: cmd.exe /X /C "git status"
[INFO] Working directory: C:\Users\ltheisen\git\caasd-portal-automation
[INFO] Release preparation complete.
ご覧のとおり、エラーはありません。ステータスを確認した後、コミットしませんでした。しかし、代わりにWindowsコマンドプロンプトから実行したとき:
...
[INFO] Executing: cmd.exe /X /C "git add -- pom.xml"
[INFO] Working directory: C:\Users\ltheisen\git\caasd-portal-automation
[INFO] Executing: cmd.exe /X /C "git status"
[INFO] Working directory: C:\Users\ltheisen\git\caasd-portal-automation
[INFO] Executing: cmd.exe /X /C "git commit --verbose -F C:\Users\ltheisen\AppData\Local\Temp\maven-scm-2030091036.commit pom.xml"
[INFO] Working directory: C:\Users\ltheisen\git\caasd-portal-automation
[INFO] Executing: cmd.exe /X /C "git symbolic-ref HEAD"
[INFO] Working directory: C:\Users\ltheisen\git\caasd-portal-automation
[INFO] Executing: cmd.exe /X /C "git Push [email protected]:org-mitre-caasd/portal-automation.git master:master"
[INFO] Working directory: C:\Users\ltheisen\git\caasd-portal-automation
[INFO] Release preparation complete.
ステータスを確認した後、コミットしたことがわかります。これもあなたの問題かどうかはわかりませんが、私にとってはうまくいきました。
これはmsysgitをインストールする必要があることを意味することに注意してください
同様の問題ですが、JenkinsリリースプラグインとGitlabを使用してこの問題が発生しました。
Pom.xmlのSCM configにタイプミスがあったため、タイプミスのプロジェクトが初めて作成されました。 2度目に、Mavenは変更をコミットせずに、古いプロジェクトにアクセスして不満を言っていました。