我们正在从Maven迁移到Gradle,而我在下面的问题上受困。在当前的pom.xml中,我们具有以下内容:
<resources>
<resource>
<targetPath>deploy/config/directory1</targetPath>
<directory>config/directory1</directory>
</resource>
<resource>
<targetPath>deploy/config/directory2</targetPath>
<directory>config/directory2</directory>
</resource>
<resource>
<targetPath>deploy/scripts</targetPath>
<directory>scripts</directory>
</resource>
我们有一个单元测试
getClass().getResource("/deploy/config/directory1/somefile.txt")
我不想更改pom.xml,因为出于部署原因需要该结构,直到我们完全迁移到Gradle为止。我正在尝试做等效的事情而没有太大的成功:
sourceSets {
main {
java {
srcDirs 'src'
}
resources {
srcDirs = [
"config/directory1",
"config/directory2",
"scripts",
]
// output.resourcesDir = "$buildDir/deploy"
}
}
对此有一些问题:
1.将config / directory1和config / directory2中的文件复制到资源文件夹的根位置。我想保持结构不变,因此在资源目录下只有一个配置目录,然后配置目录将具有directory1和directory2。
2.我可以如图所示设置output.resourcesDir,这意味着我必须将Java代码更改为
getClass().getResource("somefile.txt")
这是我必须避免的。
谢谢
最佳答案
解决方案是:
processResources {
from("scripts") {
into("deploy/scripts")
}
from("config/directory1") {
into("deploy/config/directory1")
}
// etc
}
在gradle论坛上从Sterling回答我们,这里https://discuss.gradle.org/t/converting-maven-resources-to-gradle-resources/16447/2?u=domcc
关于maven - 将Maven资源转换为Gradle资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36588998/