web-dev-qa-db-ja.com

Maven release:prepare:ローカルで変更があるため、リリースを準備できません

Continuumのrelease:prepareフェーズで問題が発生し、scm-check-modificationsステップでエラーが発生します:

[エラー] org.Apache.maven.shared.release.ReleaseFailureException:ローカルに変更があるため、リリースを準備できません:[pom.xml:modified]

私がしたこと :

  1. すべての変更(* .Javaおよびpom.xml)をSVNにコミットしました
  2. Continuumでプロジェクトのビルドを作成しました
  3. リリースの準備を開始しました。

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>
9
Ahmed MANSOUR

プラグインを追加するか、pom.xmlチェックを除外するようにプラグインを構成することが機能したことを確認できます。

<plugin>
  <groupId>org.Apache.maven.plugins</groupId>
  <artifactId>maven-release-plugin</artifactId>
  <configuration>
    <checkModificationExcludes>
        <checkModificationExclude>pom.xml</checkModificationExclude>
    </checkModificationExcludes>
  </configuration>
</plugin>
14
4F2E4A2E

プロジェクトのtargetフォルダーをソース管理から削除すると、この問題が修正されました。

7
Adil Hussain

pom.xmlを変更したくないすべての人のために、コマンドラインオプションがトリックを行います。

mvn [...] -DcheckModificationExcludeList=pom.xml,.maven/spy.log

ハドソン/ジェンキンスCI環境で問題が発生し、.maven/spy.logの変更について不満がありました。

3
Lonzak

私にとっての解決策は、pom.xmlまたはその他の変更されたファイルをステージングしてPushgitにコミットすることです

2
Ali Karaca
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<configuration>
    <checkModificationExcludes>
        <checkModificationExclude>pom.xml</checkModificationExclude>
        <checkModificationExclude>**</checkModificationExclude>
    </checkModificationExcludes>
</configuration>
1
Rahul Dahiya