我有一个Gradle项目,该项目在/src/main/resources
文件夹中有很多资源。出于性能原因,必须在构建时从其他资源生成一些资源。因此,我将所有内容拆分为多个子项目:
/MainProj/src/main/java - The application
/MainProj/src/main/resources
/InternalProj/src/main/java - Code for generating additional resources for MainProj
/InternalProj/src/main/resources
当我使用特殊的Gradle任务运行InternalProj时,它将生成一些文件到/InternalProj/output
,然后将其复制到/MainProj/src/main/resources
。不用说,这真的很丑,我想知道如何更好地做到这一点。我应该将它放在构建中还是直接放在/MainProj/src/main/resources
中?也许使用符号链接?
我现在使用从/src/main/generated-resources
到/build/something
的相对符号链接,到目前为止,它仍然可以正常工作。但是现在我有一个不同的问题:我有任务A
生成一些资源,而任务B
则依赖于那些资源,因此也依赖于A
。如果我运行gradle B
或gradle A B
,则B
仍然会失败,因为A
生成的资源没有更新到其构建文件夹中。如何强制Gradle更新资源?
答案 0 :(得分:0)
您可以将output
文件添加到InternalProj
的主要源集中:
示例Groovy代码:
sourceSets {
main {
resources {
srcDirs "src/main/resources", "output"
}
}
}