如何替换字符串模板(Gradle)

时间:2017-12-11 17:04:16

标签: java maven gradle

我从Maven迁移到Gradle 4.4。有几个maven配置文件有这样的部分:

<properties>
   <module.suffix>-14</module.suffix>
   <wildfly.hostname>10.***.***.14</wildfly.hostname>
</properties>

${module.suffix}.xml等多个资源文件中有很多.properties。我能够运行mvn wildfly:deploy -Pdeploy-14并获得war在所有文件中使用正确的后缀进行部署。 问题是:如何在Gradle中做同样的事情?我是Gradle的新手,但我相信它是现代强大的工具,它必须能够轻松完成。 求助。

P.S。我迁移的下一步将是设置Gradle Wildfly插件。我还没试过,所以如果您有任何有用的建议,请欢迎。

Gradle task replace string in .java file没有帮助(我尝试了所有的答案,但不确定我做对了)。

UPD。当我尝试这样做时

processResources {
    def params = [moduleSuffix: 'moduleSuffix']
    from 'src/template/resources', {
        expand params
    }
}

expand字标有下划线,IDEA表示&#34;无法解析符号&#39;展开&#39;&#34;

2 个答案:

答案 0 :(得分:0)

我不确定Wildfly插件在替换方面的处理方式,但通常Copy task type可以通过expand method处理大多数替换。 Java插件中的默认processResources任务是这种类型,因此可以通过修改任务来完成将值替换为资源(基本示例):

processResources {
    expand project.properties
}

答案 1 :(得分:0)

如果是我,我会通过将这些“模板”资源放在src/template/resources中来避免额外的“工作”。这样就不需要解析大部分资源来查找${...}占位符。然后,正如@ChrisArnold建议您可以在processResources任务上使用expand(Map)方法。

processResources {
    from 'src/template/resources', {
        expand project.properties
    }
}