ディスク上のカスタム ローカル Maven リポジトリにいくつかの依存関係を公開し、このフォルダーをディストリビューション zip に追加する必要があるマルチプロジェクト ビルドがあります。
maven-publish プラグインを使用して、各サブプロジェクトの公開タスクを定義します。
subprojects {
apply plugin: 'maven-publish'
configurations {
offlineDependencies
}
publishing {
publications {
configurations.each { config ->
if (config.name == "offlineDependencies") {
def files = config.files
config.dependencies.each { dep ->
files.each { file ->
if (file.name == "${dep.name}-${dep.version}.jar") {
"${dep.name}"(MavenPublication) {
artifact (file) {
groupId = "${dep.group}"
artifactId = "${dep.name}"
version = "${dep.version}"
}
}
}
}
}
}
}
}
repositories {
maven {
name 'dependencies'
url '../build/repository'
}
}
}
}
配布プラグインを使用して、zip ファイルを作成します
distributions {
release {
baseName 'release'
contents {
from('src/main/resources/')
into("repository"){
from("$buildDir/repository")
}
}
}
}
zip ファイルを作成する前に、動的に作成されたすべての発行タスクが実行されていることを確認するにはどうすればよいですか?
動的に作成されたタスクに依存するすべてのサブプロジェクトに対して新しいタスクを作成しようとしましたが、その時点ではまだ作成されていないようです。
subprojects {
task offlineDep << {
println 'Creating offline dependencies'
}
offlineDep.dependsOn {
tasks.findAll { task -> task.name.endsWith('PublicationToDependenciesRepository') }
}
}