2012-05-07 4 views
3

ProGuardのAntタスクを使用していますが、ProGuard構成ファイルが膨大であることを除いてすべてが素晴らしいです。また、別のタスクでは異なるProGuard構成ファイルが使用されます。また、別の.proファイルにリファクタリングするコピー貼り付けがたくさんあります。ProGuard Antタスク用の複数の構成ファイル

<taskdef resource="proguard/ant/task.properties" classpath="C:/Program Files/proguard4.7/lib/proguard.jar"/> 
<target name="obfuscated_jar" depends="raw_jar"> 
    <proguard configuration="core.pro lib1.pro lib2.pro"> 
     <outjar path="prog_obfuscated.jar"/> 
    </proguard> 
</target> 

複数の.proファイルを1つの大きなファイル名として扱うため、上記は機能しません。私は知られているばかだ。蟻、私は何か明白な行方不明ですか?ありがとう!

答えて

5

この答えは素晴らしいではありませんが、それは動作します。

+1

ProGuard btwをありがとう、それは素晴らしいです! –

0

configuration属性で許可されるファイルは1つだけです。
編集
属性は<proguard>要素でのみ許可されています。私には別の解決策があります。設定ファイルをAnt concat-taskで連結し、この一時ファイルを<proguard configuration="">属性に渡してください。


また、それは、引数として複数のファイルを受け入れ、後でそれらを連結するProGuardTask級を変更することが可能です。そして、Ant macrodefと同じ結果が得られました。

+0

試してみました。 'proguardconfigurationは"設定 "属性をサポートしていません。 –

+0

うん。私たちは同じことを考えました。 :-) –

+0

ハ!私は偉大な心が同じように、同時に考えると思います。助けてくれてありがとう!コンソールのProguardは複数のコマンドを受け入れるので、antタスクでも複数を受け入れると思っていましたが、concatのものは問題なく動作します。 –

1

あなたはあなたの実際の.PROファイルを指し示す-includeのオプションが含まれている単一のメイン.PROファイルを作成することができます...

<taskdef resource="proguard/ant/task.properties" classpath="C:/Program Files/proguard4.7/lib/proguard.jar"/> 
<target name="obfuscated_jar" depends="raw_jar"> 
    <concat destfile="proguard_temp.pro"> 
     <filelist dir="." files="core.pro,lib1.pro,lib2.pro"/> 
    </concat> 
    <proguard configuration="proguard_temp.pro"> 
     <outjar path="prog_obfuscated.jar"/> 
    </proguard> 
    <delete file="proguard_temp.pro"/> 
</target>