私のビルドはProjectAとProjectBという2つのプロジェクトのソースコードを使用し、ProjectBからクラスとリソースを含むJARを生成します。GradleでカスタムsourceSetのoutput.classesDirを指定する方法は?
sourceSets {
mainProjectB {
output.classesDir = "$buildDir/build/classes/projectB"
output.resourcesDir = "$buildDir/build/resources/projectB"
java { srcDirs = ['src/main/java']}
resources { srcDirs = ['src/main/resources']}
}
mainProjectA {
java { srcDirs = [
'../projectA/src/main/java'
]}
resources { srcDirs = [
'../projectA/src/main/resources'
]}
}
test {
java {
srcDirs = [
'../projectA/src/test/java',
'src/test/java'
]}
resources {
srcDirs = [
'../projectA/src/test/resources',
'src/test/resources'
]}
}
}
compileJava {
source sourceSets.mainProjectB.allJava
source sourceSets.mainProjectA.allJava
}
processResources {
from sourceSets.mainProjectB.resources
from sourceSets.mainProjectA.resources
}
jar {
from sourceSets.mainProjectB.output.classesDir
from sourceSets.mainProjectB.output.resourcesDir
}
問題:カスタムのsourceSet mainProjectB ingores指定された出力ディレクトリ私は別のディレクトリに出力を持つようになっているカスタムのsourceSet mainProjectBを定義しました。 "$ buildDir/build/classes/projectB"と "$ buildDir/build/resources/projectB"というディレクトリは作成されないため、ProjectBの代わりに両方のプロジェクトのファイルがJARに含まれます。
更新日:
プロジェクトAとBは循環依存関係があります。そのため、彼らはソースコードを共有する必要があります。
projectAとprojectBの内容をマージするjarファイルを作成しようとしていますか? – Ethan
いいえ:ProjectBのクラスとリソースを持つJAR – isobretatel