Gradle-将文件夹和内容添加到测试资源
我想在Gradle项目的测试资源中包括一个文件夹及其内容 假设我有以下项目结构:Gradle-将文件夹和内容添加到测试资源,gradle,Gradle,我想在Gradle项目的测试资源中包括一个文件夹及其内容 假设我有以下项目结构: projectRoot | - src | | - main | | \ - java | \ - test | \ - java \ - vars \ - *.groovy files vars文件夹包含几个*.groovy文件,我希望在构建项目时将这些文件包含在测试资源中。但是,测试资源必须包括vars文件夹,而不仅仅是该文件夹中的内容 如果我将以下块添加到我的buid.g
projectRoot
| - src
| | - main
| | \ - java
| \ - test
| \ - java
\ - vars
\ - *.groovy files
vars
文件夹包含几个*.groovy
文件,我希望在构建项目时将这些文件包含在测试资源中。但是,测试资源必须包括vars
文件夹,而不仅仅是该文件夹中的内容
如果我将以下块添加到我的buid.gradle
文件中,它只将该文件夹的内容放在测试资源中:
sourceSets {
test {
resources {
srcDir "vars"
}
}
}
这使得build/resources/test
目录包含vars
文件夹的内容,而不是vars
文件夹本身:
projectRoot
| - build
| \ - resources
| \ - test
| \ - *.groovy files
| - src
| | - main
| | \ - java
| \ - test
| \ - java
\ - vars
\ - *.groovy files
然而,我真正想要的是:
projectRoot
| - build
| \ - resources
| \ - test
| \ - vars
| \ - *.groovy files
| - src
| | - main
| | \ - java
| \ - test
| \ - java
\ - vars
\ - *.groovy files
(注意vars
文件夹如何列在build/resources/test
文件夹中)
我该怎么做
注意:我无法更改项目的目录结构(即
vars
文件夹不能有任何子目录,并且必须是顶级目录)。也许类似的操作可以:
task copyConfig(type: Copy) {
from "${project.projectDir}/vars/*.*"
into "${project.projectDir}/.build/resources/test/vars"
dependsOn processTestResources
}
copyConfig.mustRunAfter(processTestResources)
testClasses.dependsOn copyConfig
testClasses.mustRunAfter copyConfig
不幸的是,这行不通。
vars
文件夹不能包含任何子目录。还有其他想法吗?我只是重新阅读了这个问题并注意到。。。如果我想到一个解决方案,将会更新。我想知道是否有办法使用复制任务或类似的任务。添加脚本任务以创建目录并复制文件可能会起作用。在CopyingTestSourceSets之前,添加脚本任务可能会起作用。这是一项无效任务吗?抱歉,这是一个占位符。已更新。请参见本标题上方的pic,我尝试在processTestResources和TestClass之间插入任务。这将在编译和运行任何测试之前,在复制其他资源的同时维护自定义资源文件夹