web-dev-qa-db-ja.com

Mavenデプロイ:-DaltDeploymentRepositoryを使用したデプロイ

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

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

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個ほどのプロジェクトを構築し、次々にリリースしたいと思っています。

30
SJunejo

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

ソース

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

36
user180100

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

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

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

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

0
Alex Kogon