36

Mavenプロジェクトがあり、スナップショットリリースを2つの別々の場所に配置するように構成された内部nexusリポジトリにアーティファクトをデプロイしたいと考えています。したがって、場所をハードコードするため、「distributionManagement」を使用することはできません。だから私はいくつかを定義しました私のsettings.xmlで「releaseRepository」と「snapshotRepository」と言い、それぞれにパラメータ「release」があり、リリースの場合は「true」、スナップショットの場合は「false」に設定する必要があります。

次のコマンドを使用してビルドを実行し、アーティファクトを解放しています。

mvn clean deploy -DaltDeploymentRepository=releaseRepository::<DON'T KNOW WHAT GOES HERE SO LEFT IT EMPTY>::htp://abc.com/repositores/my-releases/ -Drelease=true

上記のコマンドを実行すると、「layout」の値が指定されていないため失敗し、例外が発生してビルドが失敗します。

「レイアウト」の値についての情報が見つかりませんでした。ビルドしてリリースしたいプロジェクトが約10個あります。

4

3 に答える 3

55

altDeploymentRepository String -プロジェクトアーティファクトをデプロイする代替リポジトリを指定します(で指定されたもの以外<distributionManagement>)。フォーマット:id::layout::url

—(ソース

したがって、あなたの場合:(レイアウトについてはここreleaseRepository::default::http://your.repo.urlを参照してください)。

于 2012-11-25T01:31:19.633 に答える
1

「layout」は、Maven 1との下位互換性のために提供されているレガシースイッチであり、この時点では時代錯誤です。Maven2またはMaven3を使用している場合(この時点で世界の少なくとも99.99%が必要であると私は信じています)、ここで他の場所で説明されているように、それは確かに「デフォルト」です。答えが明確に「デフォルト」であると述べることにより、スイッチの有用性の問題が回避されます。それが常に「デフォルト」である場合、それはまだ存在しますか?

実際にMaven1をまだ使用している場合は、「レガシー」である必要がありますが、誰も使用していないことを願っています。これはすべて、Mavenの仕様で説明されています。

レイアウトMaven2レイアウトのデフォルト、またはMaven1レイアウトのレガシー。Maven3もデフォルトのレイアウトを使用します。

https://maven.apache.org/plugins/maven-deploy-plugin/deploy-mojo.html

于 2015-11-21T08:36:33.333 に答える
0

これは特定の質問に対する答えではないかもしれませんが、リリースとスナップショットのリポジトリが異なるという理由だけで、altlocationプロパティを使用する必要はありません。それでもpom.xmlの配布管理タグで管理できます

これは、リリースリポジトリとスナップショットリポジトリの両方を含むサンプルスニペットです。

  <distributionManagement>
    <repository>
      <id>releaseRepository</id>
      <name>releaseRepository</name>
      <url>release-url-goes-here</url>
    </repository>
    <snapshotRepository>
      <id>snapshotRepository</id>
      <name>snapshotRepository</name>
      <url>snapshot-url-goes-here</url>
    </snapshotRepository>
  </distributionManagement>
于 2021-08-10T09:34:17.963 に答える