2013-11-15 57 views
3

我有一些需要用java插件任務'processResources'替換爲文件路徑的標記的資源文件。 Gradle是否提供了一種方式,令牌值是一個表達式?Gradle:用項目屬性替換標記

1)的src /資源/ config.properties文件具有令牌: SRC_ROOT_DIR = @ SRC_ROOT_DIR @

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

processResources{ 
    filter ReplaceTokens, tokens:[SRC_ROOT_DIR: project.projectDir] 
} 

這拋出異常說:無法文件 '..src \資源\ config.properties'複製到' ..build \資源\主\ config.properties'

回答

6

與--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.projectDirproject.projectDir.name(或路徑),解決了這個問題:

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

+2

+1'--stacktrace' - 可靠的建議。我忘了它,結果我的腳本正在拾取另一個'xxxxxx $ x'變量(來自密碼)。 –