我有一个多项目,我想在其中附加来自不同位置的资源(生成资源的子项目),但还要将它们放置在不同的输出目录中。
wrapper (parent)
|--frontend (child)
| |--build/dist
| |--js
| | |-- ...
| |--css
| |-- ...
|--lib (child)
|--build/dist
|--python
|-- ...
我需要wrapper (parent)
将两个子项目的build/dist
视为资源,但要放置在不同的outputDir
中。
frontend/build/dist
将位于./wrapper/build/resources/main/static
lib/build/dist
将位于./wrapper/build/resources/main
目标是在将源集main
的资源移至static
时附加outputDir
目录。
请注意,outputDir
不是jar
任务。这不是包装问题,而是outputDir
问题。
sourceSets {
main {
resources {
srcDirs [
project(':frontend').projectDir.absolutePath + '/build/dist'
project(':lib').projectDir.absolutePath + '/build/dist'
]
}
output.resourcesDir project.buildDir.absolutePath + '/resources/main/static'
}
}
以上将资源添加到主sourceSet中,但是它们具有相同的output.resourceDir。
最终问题
sourceSet
。基本上定义main1
和main2
,这可以很好地工作,但是我很难使那些sourceSets
成为main
的子代。换句话说-如果您定义自定义sourceSet
(而不是main
或test
),则需要对其进行编译-如何?我知道我可以命令:gradle build sourceSetName
来调用特定的自定义sourceSet
编译,我该怎么做,所以它依赖于main
?我正在将Gradle 4.10.1与Java(和eclipse)插件一起使用。