11

org.apache.tools.ant.filters.ReplaceTokens現在、ビルド中に次の方法でファイルの内容を置き換えるために使用できることを理解しています。

myBeans.xml:

<bean id="mybean1" class="com.test.MyClass1" >
    <property name="myprop1" value="@myproperty@" />
</bean>

my.properties:

myprop=testme

グラドルファイル:

from file("myBeans.xml"), {
   filter(ReplaceTokens, tokens: ["myproperty": project.properties["myprop"]])
}

my.propertiesただし、gradle でファイルからプロパティ名を見つけて、それを xml ファイルに置き換えたいと思います (mypropフィルターで言及することなく)。そうでない場合は、すべてPlaceHolders手動で追加する必要があります。

4

1 に答える 1

25

プロパティをマップとして ReplaceTokens 構成に渡すことができます。キーは、置き換えたいトークンと一致する必要があります。例:

ビーンズ.xml:

<bean id="mybean1" class="com.test.MyClass1" >
    <property name="myprop1" value="@myproperty@" />
</bean>

私のプロパティ:

myproperty=testme

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)
}

それが役に立ったことを願っています。

乾杯、ルネ

于 2012-10-10T07:59:16.280 に答える