gradle - Gradle - 添加文件夹和内容以测试资源
问题描述
我想在 Gradle 项目的测试资源中包含一个文件夹及其内容。
假设我有以下项目结构:
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
推荐阅读
- ios - Xcode 11:无法从带有标识符的情节提要中实例化视图控制器
- mysql - 试图在 MySQL 中划分 2 个单独的查询
- angular - ng2-chart Angular:甜甜圈 [插件] 不是“画布”文本中心的已知属性
- javascript - NodeJs - 网络模块 - 使用二进制数据响应数据包
- python - QPushButton 在添加到 Layout 时不起作用
- angularjs - 如何正确地将代码从 angularjs 迁移到 reactjs
- java - 单击图像时如何完整显示图像?
- macos - mac Catalina PermissionError: [Errno 1] 不允许操作
- c# - C# 的 SEP(赛门铁克端点保护)
- rabbitmq - 使用 RabbitAdmin bean 的 Rabbit Admin Queue 声明无法正常工作