uploadArchives
とは異なる別のアップロードタスクを使用して、ローカルMavenリポジトリに2番目のjarファイルセットを公開できないようです。ここに私のセットアップがあります:複数の設定から成果物をgradleでmavenにアップロード
上記は期待通りです。それから私はgradle uploadArchives
を実行する追加のconfiguration
configurations{
guiceArchives
}
task guiceJar(type: Jar){ ... }
task guiceSourcesJar(type: Jar){ ... }
artifacts{
guiceArchives guiceJar
guiceArchives guiceSourcesJar
//archives guiceJar
//archives guiceSourcesJar
}
はOKに動作しているが、何もgradle uploadGuiceArchives
ん:
:core:guiceClasses UP-TO-DATE
:core:guiceJar UP-TO-DATE
:core:guiceSourcesJar UP-TO-DATE
:core:jar UP-TO-DATE
:core:sourcesJar UP-TO-DATE
:core:uploadArchives
BUILD FINISHED
個々guiceJar
とguiceSourcesJar
タスクが自分で正常に動作しない、とguiceArchives
コンフィギュレーションの内容をプリントアウトも明らかにそのジャーは正しくアーティファクトとして含まれています。
Iみました一時的にそれを言って文句を言わせarchives
の構成にguiceJar
とguiceSourcesJar
を割り当てる:
A POM cannot have multiple artifacts with the same type and classifier.
正確に何であるかmanual saysを。だから私は、問題の原因であったのがこのアーティファクトの衝突であると仮定しました。
マニュアルが示唆するように、私は偉大な仕事をされますがguiceJar
とguiceSourcesJar
がarchives
に割り当てられているときにのみ、addFilter
を使用して、それを修正しました。 guiceArchives
に割り当ててgradle uploadGuiceArchives
を試しても、何もしません。
アップロードタスクが異なる複数の成果物をアップロードする方法はありますか?
ソリューション:
ここ@Peter Niederwieserが提供するソリューションと更新です。
ただ、この追加:
uploadGuiceArchives {
repositories {
mavenDeployer {
repository(url: project.releaseRepoUrl)
snapshotRepository(url: project.snapshotRepoUrl)
}
}
}
注:addFilter
が必要とされていませんが。
ありがとうございます!
EDIT2:完全性については
、project.releaseRepoUrl
とproject.snapshotRepoUrl
次のようにローカルのMavenリポジトリに設定されています
project.ext{
releaseRepoUrl = "file://${project(':').projectDir}/../mvn-repo/releases"
snapshotRepoUrl = "file://${project(':').projectDir}/../mvn-repo/snapshots"
}
これは、同じプロジェクトで構成成果物をサポートする正しい方法ですか? – cmcginty
この分野での主要な機能の更新はありませんでしたので、それはまだ有効であり、その最善の方法だと思います。 – rodion