我有以下代码来替换我的xml文件中的令牌,但是当我尝试使用项目变量时代码无效。我传递变量测试为-Ptest =“value”。对编码值进行硬编码是有效的,但在构建项目时我不能给它带来很大的价值。
YourPojoClass model = new Gson().fromJson(jsonResponse, YourPojoClass.class);
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:jee="http://www.springframework.org/schema/jee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee.xsd">
<bean id="dataSource" class="myclass">
<property name="clientInfo" value="@test@"/>
</bean>
</beans>
答案 0 :(得分:0)
在您的XML中,您使用令牌@test@
,但在您的任务配置中,您告诉Gradle替换@APPNAME@
,这不匹配,因此不会替换任何内容。改变以匹配另一个,它将起作用。
除此之外,"${project.test}"
并非真正必要,只需撰写project.test
甚至test
即可。如果变量是String的唯一内容,则无需动态解析变量。
除此之外,将它作为一个单独的复制任务可能不是最好的主意,如果你有不同的任务在同一位置产生输出,它可以对抗可靠和良好的最新检查。对于此用例,您可以配置processTestResources
任务,例如: G。使用filesMatching
块匹配要替换的文件,然后在其中配置过滤器。
此外,无论您是使用自己的任务还是配置processTestResources
任务,您还应该将test
属性的值添加到任务的输入中,以便最多-date check mechanism知道如果属性值改变,它必须重新运行任务。否则,即使值发生变化,也只会将任务作为最新状态跳过。