我有这样的项目结构(使用gradle 2.11):
submodule1
|
- src
|
- main
|
- resources
|
- file1
submodule2
|
- resources
|
- file2
- file3
我通过以下方式向submodule1
resources
添加了一些其他内容:
sourceSets {
main {
resources {
srcDir("../submodule2/resources")
}
}
}
是否有一种简单的方法可以为submodule2
的资源指定自定义输出路径?目前,当我对它进行jar时,所有资源文件file1
,file2
等都将放在顶层的jar中。我希望submodule1
文件保持在最高级别,submodule2
资源放在jar中的自定义路径下,即submodule2resources
。
答案 0 :(得分:1)
您需要在构建jar文件期间过滤文件。使用DSL在jar
文件的build.gradle
封闭中完成了此操作。这里的问题在于,当您添加源集并准备好jar时,有关给定文件来源的信息将丢失 - 所有文件现在都属于submodule1 - 因此需要一个解决方法:
apply plugin: 'java'
project.ext.sm2Resources = project.file("../sm2/src/main/resources")
sourceSets {
main {
resources {
srcDir(sm2Resources)
}
}
}
jar {
eachFile { f ->
if(new File(sm2Resources, f.file.name).exists()) {
f.path = "sm2/$f.name"
}
}
}
查看demo。