Maven、maven-release-plugin、git 統合、pom.xml、および pom.xml がルートではなくリポジトリのローカル コピーのサブディレクトリにあることについて質問があります。
セットアップは次のとおりです。
- 限られた数のプライベート リポジトリを持つ github アカウントを持っています
- Maven を使用してビルド/リリースを整理したい (学習中)
- 多くのMaven「プロジェクト」を作成する必要があるかもしれません.gitリポジトリごとにいくつかのプロジェクト
- 各 Maven プロジェクトには、その特性を定義する「pom.xml」が必要です。
- プロジェクトのすべての pom.xml ファイルを git リポジトリのルートに置くことができないか、少なくとも不便です。
- したがって、プロジェクトのフォルダーレイアウトは次のようになります。
- git_repo_root_dir
- project_Aフォルダー
- pom.xml
- other_code
- project_Bフォルダー
- pom.xml
- other_code
- 等
- ...
- project_Aフォルダー
- git_repo_root_dir
- ディレクトリ git_repo_root_dir/project_A に正常に移動し、「mvn release:prepare」を実行できます
- git_repo_root_dir/project_A: "mvn release:perform" のこのステップで失敗します
- 問題は、リリース ビルドの準備として git タグ付きコードが git_repo_root_dir/project_A/target/checkout/project_A に正常にチェックアウトされているようですが、チェックアウト後に "maven-release" プラグインがディレクトリ git_repo_root_dir/project_A に移動することです。 /ターゲット/チェックアウト/。git_repo_root_dir/project_A/target/checkout/project_A/ の代わりに。実際のビルドを行うには、「maven-release」プラグインに、pom.xml をいじる前にソースの特別なタグ付きコピーのサブディレクトリにステップインするように指示する方法はありません。
- 質問: これを回避する方法はありますか? 「mvn release:perform」にサブディレクトリに移動するように指示するオプションはありますか?
このプロセス中に発生する実際のエラーは次のとおりです。
[INFO] --- maven-release-plugin:2.0:perform (default-cli) @ standard_parent_project ---
[INFO] Checking out the project to perform the release ...
[INFO] Executing: /bin/sh -c cd "/Users/___/DEV c8ion 01/maven_based_code/0maven/standard_parent_project/target" && git clone git@github.com:clarafaction/0maven.git '/Users/___/DEV c8ion 01/maven_based_code/0maven/standard_parent_project/target/checkout'
...
/* note, the pom.xml the build should go out of at this point is at
'/Users/___/DEV c8ion 01/maven_based_code/0maven/standard_parent_project/target/checkout/standard_parent_project/pom.xml'
*/
...
[INFO] [ERROR] The goal you specified requires a project to execute but
there is no POM in this directory
(/Users/___/DEV c8ion 01/maven_based_code/0maven/standard_parent_project/target/checkout).
Please verify you invoked Maven from the correct directory. -> [Help 1]
ありがとう。