Mavenリポジトリに公開する必要がある単一のプロジェクトから複数のjarを作成しようとしていますが、アーティファクトの詳細を正しく取得できないようです。
私がsources-jarを処理するのを見た例から、各jarを作成する必要があるいくつかのタスクを(動的に)作成しようとしました。
def environments = ['local', 'dev', 'test', 'acc', 'prod']
environments.each { e ->
task "create${e}jar"(type: Jar, dependsOn: classes) << {
def dir = filterPropertiesForEnv(e)
from (dir)
classifier = e
}
artifacts.add('archives', tasks["create${e}jar"])
}
File filterPropertiesForEnv(envName) {
println "filter for $envName"
def destDir = new File(project.buildDir, envName)
destDir.mkdir()
// Do filter stuff based on each envName
destDir
}
「インストール」タスクを実行すると、動的に作成されたタスク「create [name] jar」が実行されますが、jarファイルは作成されません。doLast-"<<"を削除すると、ビルドによっていくつかのjarファイルが生成されますが、jarファイルは他のすべてが実行される前に(configure-stage中に)ビルドされるため、マニフェストファイルのみが含まれます。
複数のjarファイルを作成し、それらをアーティファクトとしてアタッチするためのより良い方法はありますか?また、このjarが含まれている同じパターンに基づいて複数のearファイルを作成する必要があるため、再利用可能なソリューションを見つけると便利です。私はMavenに精通していますが、Gradleは新しい知り合いであり、この種の問題をどのように構成するかについてはあまり理解していません。