Gradle:用项目属性替换标记

ami*_*ite 3 groovy gradle build.gradle

我有一些资源文件,其中包含一些需要使用java插件任务'processResources'替换文件路径的标记.gradle是否提供了一种方式,令牌值是表达式?

1)src/resources/config.properties文件有一个令牌:SRC_ROOT_DIR = @ SRC_ROOT_DIR @

2)build.gradle文件包含以下内容:

processResources{
   filter ReplaceTokens, tokens:[SRC_ROOT_DIR: project.projectDir]
}
Run Code Online (Sandbox Code Playgroud)

这引发了一个异常说:无法将文件'..src\resources\config.properties'复制到'..build\resources\main\config.properties'

Ori*_*Dar 8

使用--stacktrace运行你的代码段给了我:

...

Caused by: org.gradle.api.GradleException: Could not copy file 
'C:\bss\zz\src\main\resources\config.properties' 
to 'C:\bss\zz\build\resources\main\config.properties'.

...

Caused by: java.lang.ClassCastException: 
java.io.File cannot be cast to java.lang.String
...
Run Code Online (Sandbox Code Playgroud)

project.projectDir更改为project.projectDir.name(或path)解决了它:

filter ReplaceTokens, tokens:[SRC_ROOT_DIR: project.projectDir.path]

  • +1`-stacktrace` - 坚实的建议.我忘了它,结果我的脚本正在拾取另一个`xxxxxx $ x`变量(来自密码). (3认同)