3

我有一些带有一些标记的资源文件,这些标记需要使用 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'

4

1 回答 1

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

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

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

于 2013-11-15T22:58:15.100 回答