Continuumのrelease:prepareフェーズで問題が発生し、scm-check-modificationsステップでエラーが発生します:
[エラー] org.Apache.maven.shared.release.ReleaseFailureException:ローカルに変更があるため、リリースを準備できません:[pom.xml:modified]
私がしたこと :
Scm-check-modificationsがScmCheckModificationsPhaseクラスを呼び出して、SCMにあるものと比較してローカルな変更がないことを確認していることを知っています。
Mavenのみを使用している場合、ローカルで変更がある場合、またはローカルコードとSVNの間に違いがある場合など、release:prepareは最初に変更をチェックするため、機能しません。しかし、Continuumを使用していると、なぜローカルコードとSVNリポジトリの違いになるのかわかりません。だから私はContinuumのrelease:prepare目標がなぜその問題に直面しているのか分かりません。
私のpomの例:
<build>
<plugins>
...
<plugin>
<artifactId>maven-release-plugin</artifactId>
<configuration>
<useReleaseProfile>false</useReleaseProfile>
</configuration>
</plugin>
...
</plugins>
</build>
<scm>
<connection>scm:cvs:ext:url:/var/cvs:application_name</connection> <developerConnection>scm:cvs:ext:url:/var/cvs:application_name</developerConnection>
</scm>
.....
</project>
親pom.xml:
...
<pluginManagement>
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>2.2.2</version>
<configuration>
<useReleaseProfile>false</useReleaseProfile>
<goals>deploy</goals>
<arguments>-Prelease</arguments>
</configuration>
</plugin>
.....
参考までに、プロジェクトのビルドとリリースは、これまで常に正常に機能しています。
私の問題を解決したバイパスソリューションがありますが、私はまだこの問題の原因を理解しようとしています。
バイパスソリューション:
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>2.2.2</version>
<configuration>
...
<checkModificationExcludes>
<checkModificationExclude>pom.xml</checkModificationExclude>
</checkModificationExcludes>
</configuration>
</plugin>
プラグインを追加するか、pom.xml
チェックを除外するようにプラグインを構成することが機能したことを確認できます。
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<configuration>
<checkModificationExcludes>
<checkModificationExclude>pom.xml</checkModificationExclude>
</checkModificationExcludes>
</configuration>
</plugin>
プロジェクトのtarget
フォルダーをソース管理から削除すると、この問題が修正されました。
pom.xml
を変更したくないすべての人のために、コマンドラインオプションがトリックを行います。
mvn [...] -DcheckModificationExcludeList=pom.xml,.maven/spy.log
ハドソン/ジェンキンスCI環境で問題が発生し、.maven/spy.log
の変更について不満がありました。
私にとっての解決策は、pom.xmlまたはその他の変更されたファイルをステージングしてPushgitにコミットすることです
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<configuration>
<checkModificationExcludes>
<checkModificationExclude>pom.xml</checkModificationExclude>
<checkModificationExclude>**</checkModificationExclude>
</checkModificationExcludes>
</configuration>