カンマで区切られた値のプロパティがあります。a、b、c
これを分解して、さまざまなファイルセットのパスを作成したいと思います。例えば。
<path id="compile.path">
<fileset dir="..\a\lib\"/>
<fileset dir="..\b\lib\"/>
<fileset dir="..\c\lib\"/>
</path>
これは可能ですか?どうすればいいのですか?私はアリにあまり詳しくありません。助けていただければ幸いです。
カンマで区切られた値のプロパティがあります。a、b、c
これを分解して、さまざまなファイルセットのパスを作成したいと思います。例えば。
<path id="compile.path">
<fileset dir="..\a\lib\"/>
<fileset dir="..\b\lib\"/>
<fileset dir="..\c\lib\"/>
</path>
これは可能ですか?どうすればいいのですか?私はアリにあまり詳しくありません。助けていただければ幸いです。
カスタムスクリプトまたは非標準のAntタスクを使用する必要があります。開始するためにプロパティから部分文字列を取得する方法を説明するこのSOの回答をご覧ください。
別の方法はPropertySelector
、ant-contrib から使用することです
<property name="package.ABC.name" value="abc pack name" />
<property name="package.DEF.name" value="def pack name" />
<property name="package.GHI.name" value="ghi pack name" />
<property name="package.JKL.name" value="jkl pack name" />
<propertyselector property="pack.list"
delimiter=","
match="package\.([^\.]*)\.name"
select="\1"
casesensitive="false" />
would yield the results
ABC,DEF,GHI,JKL
もう 1 つの方法は、for ループを記述し、区切り記号に基づいて元のプロパティを反復処理し、トークンごとにループからターゲットを呼び出します。
<foreach list="${property}" delimiter="${line.separator}" target="mytarget"
param="token" />
次に、呼び出されたターゲット:
<target name="mytarget">
<echo>${token}</echo>
</target>