mvn release:pom.xmlへの変更をコミットしない準備


81

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のコマンド出力からは、gitcommitコマンドが省略されているように見えます。

[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 git@github.com: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.

私はmaven3.0.5を実行しています(--dry-runまたは-DpushChanges = falseなし)。これが私の効果的なpomの関連する(私が思う)部分です:

[...]

<scm>
   <connection>scm:git:git://github.com/jenkinsci/stashnotifier-plugin.git</connection>
   <developerConnection>scm:git:git@github.com: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:git@github.com/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>

私は何が間違っているのですか?あなたの洞察を事前に感謝します!


残念ながら、あなたの説明に関連するエラーメッセージは表示されません。表示されるエラーメッセージを表示できますか?
khmarbaise 2013年

2
それが問題です。エラーメッセージはまったくありません。出力の特定のセクションに興味がありますか?(複数ページのMavenコマンドライン出力を追加して質問が肥大化するのを避けたい)
BumbleGee 2013

まったく同じ問題が発生し、maven-release-pluginのバージョン2.4に更新することで解決しました。
brk3 2013年

私も同じ問題を抱えていましたが、バージョン2.4から2.3.2にダウングレードすることで修正しただけです。図に行きます。
ケース

2
私も問題を抱えていましたが、2.4.1から2.5.1にアップグレードすることで解決しました。
ジョンフィア

回答:


95

リリースプラグインのバージョンではなく、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が必要になる場合があります。詳細については、コメントを参照してください。


1
これにより、maven-release-plugin2.4.2でのgitの問題が解決しました。非常に素晴らしい。
kevinarpe 2014

3
@BumbleGee、あなたはこの答えを受け入れることを検討する必要があります!
ericbn 2014

2
<artifactId> maven-release-plugin </ artifactId> <version> 2.5.2 </ version>では修正されておらず、maven-release-pluginの依存関係をmaven-scmの最新リリースバージョン(1.9.4)に定義した場合-provider-gitexe。release-plugin dep ..を1.8.1に変更しましたが、すべてうまくいきました。
トビアスHochgürtel

3
2番目は@TobiasHochgürtelです。2.5.2と1.9.4のコンボにはまだバグがあります。2.5.2と1.8.1は問題ないようです。
ケニー2015

4
POMの変更がMaven3.3.1、maven-release-plugin 2.4.1、およびmaven-scm-provider-gitexe1.9でコミットされないという問題がまだありました。maven-release-plugin2.5.3およびmaven-scm-provider-gitexe1.9.4に更新すると、問題が解決しました。
Sven Ackermann 2016年

17

私は同じ問題に遭遇しました、#richnouによる解決策は私のために働きます(SCM依存関係をアップグレードする)。この問題で作成された問題があります。以下のリンクを参照してください。この問題は、「gitstatus」がプラグインが解析できないローカライズされたメッセージを返す新しいバージョンのGitに関連しています。それが根本的な原因です。この問題は、gitの--porcelainオプション(簡単に解析可能な出力を返すはずです)を使用してgit scm(1.8.1バージョン)で修正されましたが、この修正後、別の問題が発生しました-リポジトリルート(scmタグ)が作業ディレクトリでない場合、release:prepareそれでも失敗します。この問題は、Git SCMのスナップショットバージョン(まだリリースされていません)で修正されているようです。これは、scmタグを子pomにコピーすることで回避できます。

MRELEASE-812

SCM-709

maven-release-plugin-and-git-fix


私も同じ問題を抱えていました。私は3.2.1とgit1.9.1をMavenしました。私がpomを持っていたディレクトリがgitルートではなかったので、リリースプラグインを2.5に更新するだけではうまくいきませんでした。richnouが提案したように、maven-scm-provider-gitexeを1.9.2の最新のものに更新すると、問題が解決しました。
チャトゥリカサンダレヌ2014年

9

まず、richnouとvasektからの回答が私の問題を解決しました。これまでに言及したバージョンよりも新しいバージョンであるという理由だけでこの回答を投稿すると思い、それらを含む追加の例を示すとよいと思いました。

スナップショットの問題を引き起こしていたmavenscm依存関係バージョンを指定せずに、Git3.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>

これは私にとっては問題なく機能し、リリースバージョンはリリースリポジトリに適切にアップロードされ、スナップショットも期待どおりに機能しました。


2
私の場合、maven-release-pluginを2.5.3にアップグレードするだけで済みました。gitexeの依存関係を指定する必要はありませんでした。
colini 2017年

1
Maven 3.5.2、Maven-release-plugin 2.5.3 +プロバイダー1.9.5は、mvn release:prepare formeの後にpomをコミットしません。ただし、プロバイダー1.8.1はそうします。
avec

上記の私のコメントを更新してください。1.8.1は、単一のpomプロジェクトのコミットには機能しますが、マルチモジュールプロジェクトには機能しません。
avec

9

上記の解決策がうまくいかなかったので、おそらくこれを読んでいます。私は同じ問題を抱えていて、ここに記載されているすべてを試しました。私のバージョンは:maven-release-plugin 2.5git 1.7.9

私のために働いた解決策は、maven-release-pluginをバージョン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>

4
私はmaven-release-plugin-2.3.2gitv1.9.3を持っていて、アップグレードしてmaven-release-plugin-2.5修正しました。
ショーンコノリー

私は持っていてmaven-release-plugin-2.3.1、git1.9.4とアップグレードmaven-release-plugin-2.5も私のために働いた。
ウェールズ

1
プラグインをアップグレードする2.5.2にgitで、私のために解決される問題2.4.0
JBCP

おそらくそれはgitバージョン/ mvnバージョンのインターロックの問題です。最新のMaven(3.3.9)がまだリリースプラグインを2.3.2にデフォルト設定しているのはなぜですか?これはMavenのバグですか?maven.apache.org/ref/3.3.9/maven-model-builder/super-pom.html
Steven R. Loomis

4

maven-release-plugin2.5.2へのアップグレードは役に立ちました(2.5へのアップグレードは役に立ちませんでした。システム上の他の新しいソフトウェアによっては、すべてではありませんが一部の人には機能します)。私はそれが自動的に新しいプロバイダーを引き込むと信じています。


注:私にとっては、2.5で十分でした。
イノケンティ2015

1

私はちょうどこの同じ問題に遭遇しました、そして他の答えとコメントから、それがリリースプラグイン自体のバグである可能性が高いと思いました。

私の場合、次のように構成された、ほとんど空の新しいプロジェクトで、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がそれを解決するショットを持っているように見えました。

それが実際問題であったかどうかはわかりませんが、プロジェクトをプラグインの2.4.1にアップグレードすると、問題は解決しました。それがあなたにとっても問題を解決することを願っています!


1

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 git@barrel.mitre.org: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 git@barrel.mitre.org:org-mitre-caasd/portal-automation.git master:master"
[INFO] Working directory: C:\Users\ltheisen\git\caasd-portal-automation
[INFO] Release preparation complete.

ステータスを確認すると、コミットしたことがわかります。これがあなたの問題でもあるかどうかはわかりませんが、私にとってはうまくいきました。

これは、msysgitをインストールする必要があることを意味することに注意してください


1

ローカルでGit1.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-plugin2.4.1または2.4.2を使用してみました。


1.7.xへのダウングレードも役に立ちました
CAB

0

同様の問題ですが、JenkinsリリースプラグインとGitlabを使用して、この問題が発生しました。

  • 初めて動作しました。
  • 2回目はコミットしません。

pom.xmlのSCM構成にタイプミスがあったため、タイプミスのあるプロジェクトが初めて作成されました。2回目は、Mavenが古いプロジェクトにアクセスしていて、変更をコミットせずに文句を言いました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.