我有一个像这样的项目结构(使用 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
。
最佳答案
您需要在构建 jar 文件期间过滤文件。它是使用 DSL 在 build.gradle
文件中的 jar
闭包中完成的。 。这里的问题在于,当您添加源集并准备好 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 .
关于java - 在自定义输出目录下添加 gradle 资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39160014/