システムをリリースするために、他の多くのプロジェクトに対して uploadArchives を呼び出すリリース プロジェクトを作成しています。
私のプロジェクトには、次のファイルがあります。
settings.gradle
include '../proj-a', '../proj-b'
build.gradle
task releaseSystem() {
// what goes here?
}
gradle releaseSystem
releaseSystem タスクの内容は、サブ プロジェクトごとに uploadArchives を呼び出して実行できるようにする必要がありますか?
いくつかのオプションを試しましたが、これまで成功したものはありません。
あなたが提供できる洞察をありがとう。
答え
私の問題に対してgradleが提供する優雅な解決策には、常に感銘を受けています。これが私の最終的な解決策です(Peterが以下で指摘したように):
settings.gradle
include 'proj-a', 'proj-b'
project (':proj-a').projectDir = new File(settingsDir, '../proj-a')
project (':proj-b').projectDir = new File(settingsDir, '../proj-b')
build.gradle
task releaseSystem() {
dependsOn {
[
subprojects.build,
subprojects.uploadArchives
]
}
}
私のリポジトリはmavenリポジトリであるため、最初に「../proj-a」をsettings.gradleに含めたときに、無効なartifactId ../proj-aでpomが生成されたことに注意してください。システムが poms を正しくまとめ、uploadArchives タスクを正常に完了するために、settings.gradle を上記の形式に変更する必要がありました。