【问题标题】:Gradle: replace tokens with project propertiesGradle:用项目属性替换标记
【发布时间】:2013-11-28 16:28:56
【问题描述】:

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

【问题讨论】:

    标签: groovy gradle build.gradle


    【解决方案1】:

    用 --stacktrace 运行你的 sn-p 给了我:

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

    【讨论】:

    • +1 --stacktrace - 可靠的建议。我忘记了,原来我的脚本正在获取另一个 xxxxxx$x 变量(来自密码)。
    猜你喜欢
    • 2012-09-30
    • 2018-04-19
    • 2016-07-05
    • 2022-01-26
    • 1970-01-01
    • 1970-01-01
    • 2010-09-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多