目前我了解我们可以使用org.apache.tools.ant.filters.ReplaceTokens
以下方式在构建期间替换文件的内容.
myBeans.xml
:
<bean id="mybean1" class="com.test.MyClass1" >
<property name="myprop1" value="@myproperty@" />
</bean>
Run Code Online (Sandbox Code Playgroud)
my.properties
:
myprop=testme
Run Code Online (Sandbox Code Playgroud)
gradle文件:
from file("myBeans.xml"), {
filter(ReplaceTokens, tokens: ["myproperty": project.properties["myprop"]])
}
Run Code Online (Sandbox Code Playgroud)
但是我希望gradle从my.properties
文件中找到属性名称并将其替换为xml文件(myprop
在过滤器中没有提及).如果没有,我将不得不PlaceHolders
手动添加所有.
Ren*_*hke 20
您可以将属性作为映射传递给ReplaceTokens配置.密钥必须与您要查看的令牌匹配.例:
beans.xml中:
<bean id="mybean1" class="com.test.MyClass1" >
<property name="myprop1" value="@myproperty@" />
</bean>
Run Code Online (Sandbox Code Playgroud)
my.properties:
myproperty=testme
Run Code Online (Sandbox Code Playgroud)
的build.gradle:
task myCopy(type:Copy){
from "bean.xml"
into ("$buildDir/beans")
def myProps = new Properties()
file("my.properties").withInputStream{
myProps.load(it);
}
filter(org.apache.tools.ant.filters.ReplaceTokens, tokens: myProps)
}
Run Code Online (Sandbox Code Playgroud)
希望有所帮助.
欢呼,勒内
归档时间: |
|
查看次数: |
16137 次 |
最近记录: |