1

release:perform が呼び出されたときに失敗する maven プロジェクトがありますが、 release;prepare は期待どおりに動作します。

確かに私が抱えている問題に似ているように見えるバグレポート(以下)を見つけましたが、問題を理解しているかどうかは完全にはわかりません: MRELEASE516

私が得る出力の最後の数行:

[INFO] Executing: cmd.exe /X /C "p4 -d E:\hudson\jobs\myHudsonJob\workspace\target\checkout -p 1.1.1.1:1111: client -d myProjectWorkspace-MavenSCM-E:\hudson\jobs\myHudsonJob\workspace\target\checkout"
[INFO] Executing goals 'deploy'...
[WARNING] Base directory is a file. Using base directory as POM location.
[WARNING] Maven will be executed in interactive mode, but no input stream has been configured for this MavenInvoker instance.
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] Error executing Maven.

Working directory "E:\hudson\jobs\myHudsonJob\workspace\target\checkout\workspace" does not exist!

バグレポートを読んだところ、エラーの考えられる原因はモジュールの構造に関連しているため、以下に概要を示しました。

/ワークスペース
| |
|+ pom.xml (親がビルド pom であるルート pom、
| | release の呼び出し: この pom で実行)
| | [モジュール: moduleA と moduleB]
| |
|- モジュール A
   |+ pom.xml (親もビルド pom)
   |+ build/pom.xml (ビルド pom - カスタム親なし)
|- モジュール B
   |+ pom.xml (親はビルド pom)

ルートpomは、エラーから「ワークスペース」内の共通ディレクトリにあるはずですが、それを試しても機能せず、なぜそれが必要なのか意味がありません。

Base directory is a fileという警告は、代わりに何をする必要がありますか?! 次に、ベースディレクトリがワークスペースであると判断します。これは、作業ディレクトリが見つからないことを意味します...何かアイデアはありますか?

前もって感謝します。

編集:

SCM構成を確認したところ、すべて問題ないように見えます...各モジュールとルートpomで:

<scm>
<connection>
    scm:perforce:1.1.1.1:1111://rootToDirectoryContainingRelevantPom
</connection>
<developerConnection>
    scm:perforce:1.1.1.1:1111://rootToDirectoryContainingRelevantPom
</developerConnection>
</scm>

編集2:

多分私はMRELEASE-261を打ったでしょうか?

4

5 に答える 5

0
Working directory "E:\hudson\jobs\myHudsonJob\workspace\target\checkout\workspace" does not exist!

あなたのログで上記の行を見ました。どこかに厄介なパス設定があるようです。ワークスペースをどこかに上書きしますか? 構成を確認し、オプション設定を可能な限り排除してください。

于 2010-05-10T18:24:52.693 に答える
0

このエラーは私たちに発生していました

Working directory E:\Data\myproject\target\checkout does not exist!

私たちはサーバー ツールの大規模な移行の最中にあり、Mavenrelease:prepareは静かに失敗しているように見え、タグとバージョン番号の変更がエラーなしでプッシュされたと主張しています。ただし、いくつかの調査の結果、これらはローカルの git リポジトリにコミットされただけでrelease:prepare、プッシュは実行されませんでした。プッシュを実行するコマンドを実行していても、失敗は報告されませんでした。maven-eおよび-Xコマンド ライン パラメータを使用しても。

Maven 3.3.9、maven リリース プラグイン 2.5.3、および git client 2.9.2 を使用しています。

私たちの最終的な解決策は、タグをプッシュする(およびマスターにプッシュする)権限を持つユーザー名とパスワードを含む、gitサーバー(オリジンマスター)のmavenのファイルに定義を追加する(または場合によっては修正する)ことでした。~\.m2\settings.xmlgit サーバーのidサーバー定義の は、git サーバーのホスト名である必要があります。

<servers>
  <server>
    <id>git-server</id>
    <username>dan</username>
    <password>changeit</password>
  </server>
<servers>

今回の更新により、サーバー上でタグが完了し、チェックアウトが正常に行われるようになりました。

于 2016-09-01T20:28:58.630 に答える
0

あなたがMRELEASE-516 (約release:prepare) に直面しているかどうかはわかりません。<scm>ただし、各POMに正しい情報があるかどうかは疑問です。これを確認できますか?

于 2010-05-10T16:39:12.350 に答える
0

私の場合、同じ症状は maven-release-plugin:2.2.1 のバグの結果であることが判明しました。MRELEASE-705を参照してください。

したがって、エラーを取り除くには、これを親 pom に入れる必要があります。

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-release-plugin</artifactId>
            <version>2.0</version>
        </plugin>
    </plugins>
</build>
于 2012-04-11T19:04:20.730 に答える
0

リリースプラグインの新しいバージョンを使用して、これを機能させました。Mavenスーパー pomは、定義されたリリース プラグインの v2.0 に依存しています。これをオーバーライドしない場合、そのバージョンが使用されます。

プラグインの実行時に新しいバージョンを指定できます

  mvn org.apache.maven.plugins:maven-release-plugin:2.2.1:perform

または、pom で依存関係のバージョンをオーバーライドできます

  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-release-plugin</artifactId>
    <version>2.2.1</version>
  </plugin>
于 2011-08-04T11:24:00.047 に答える