Gradle:用项目属性替换标记

时间:2013-11-15 10:02:16

标签: 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]
}

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

1 个答案:

答案 0 :(得分:7)

使用--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
...

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

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