7

を実行しようとしてmvn release:performいますが、コマンドは pom ファイルがリポジトリのルートにあると想定しています。デフォルトをオーバーライドするために設定できるシステム プロパティまたは設定はありますか?

mvn release:prepareすべてのリリース成果物がターゲット ディレクトリにあり、リポジトリが適切にタグ付けされているため、への呼び出しは成功したようです。

重要な場合、これは git プロジェクトです。


編集これが私がしたことです:

cd /path/to/git/root/path/to/mvn/project
mvn -DdevelopmentVersion=1.2.0-SNAPSHOT -DreleaseVersion=1.1.0 release:prepare
...enter correct passphrase and choose all default options...
mvn release:perform

次に、リモートリポジトリをディレクトリに複製し、target/checkoutいくつかのチャーンとリモートgitリポジトリへのプッシュの後、次のエラーが発生します。

[ERROR]   
[ERROR]   The project  (/path/to/git/root/path/to/mvn/project/target/checkout/pom.xml) has 1 error
[ERROR]     Non-readable POM /path/to/git/root/path/to/mvn/project/target/checkout/pom.xml: /path/to/git/root/path/to/mvn/project/target/checkout/pom.xml (No such file or directory)

そのため、maven はtarget/checkoutディレクトリのルートで pom ファイルを探しますが、そこは場所ではありません。

4

2 に答える 2

7

私も同じ問題を抱えていました。これを pom に追加します。

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-release-plugin</artifactId>
  <version>2.2.1</version>
  <executions>
    <execution>
        <id>default</id>
        <goals>
            <goal>perform</goal>
        </goals>
        <configuration>
            <pomFileName>subdir/pom.xml</pomFileName>
        </configuration>
    </execution>
  </executions>
</plugin>

ソース: https://stackoverflow.com/a/8233712/555220

于 2013-07-14T12:22:20.073 に答える
0

ルート pom は実際にはソース管理にないため、 release:prepare と release:perform は機能しないと思います。これらのコマンドの目的の 1 つは、リリースされたプロジェクトが、1 人のマシンにあるものではなく、ソース管理に基づいてビルド (およびテストに合格) できるようにすることだと思います。そのため、チェックアウトして再構築しようとします。pom が単にソース管理されていない場合、この目的は達成できません。release:prepare および release:perform do: スナップショットの削除、コミット、タグ、mvn デプロイ、スナップショットの追加バージョンの増分、コミットの手順を手動で実行する必要がある場合があります。

于 2013-07-04T18:49:00.380 に答える