diff options
Diffstat (limited to 'proguard/examples/ant/applications3.xml')
-rw-r--r-- | proguard/examples/ant/applications3.xml | 98 |
1 files changed, 98 insertions, 0 deletions
diff --git a/proguard/examples/ant/applications3.xml b/proguard/examples/ant/applications3.xml new file mode 100644 index 0000000..e42eb39 --- /dev/null +++ b/proguard/examples/ant/applications3.xml @@ -0,0 +1,98 @@ +<!-- This Ant build file illustrates how to process applications, + using a full-blown XML configuration. + Usage: ant -f applications3.xml --> + +<project name="Applications" default="obfuscate" basedir="../.."> + +<target name="obfuscate"> + <taskdef resource="proguard/ant/task.properties" + classpath="lib/proguard.jar" /> + + <proguard printseeds="on" + printmapping="out.map" + renamesourcefileattribute="SourceFile"> + + <!-- Specify the input jars, output jars, and library jars. --> + + <injar file="in.jar" /> + <outjar file="out.jar" /> + + <libraryjar file="${java.home}/lib/rt.jar" /> + <!-- libraryjar file="junit.jar" / --> + <!-- libraryjar file="servlet.jar" / --> + <!-- libraryjar file="jai_core.jar" / --> + <!-- ... / --> + + <!-- Preserve line numbers in the obfuscated stack traces. --> + + <keepattribute name="LineNumberTable" /> + <keepattribute name="SourceFile" /> + + <!-- Preserve all annotations. --> + + <keepattribute name="*Annotation*" /> + + <!-- Preserve all public applications. --> + + <keepclasseswithmembers access="public"> + <method access ="public static" + type ="void" + name ="main" + parameters="java.lang.String[]" /> + </keepclasseswithmembers> + + <!-- Preserve all native method names and the names of their classes. --> + + <keepclasseswithmembernames> + <method access="native" /> + </keepclasseswithmembernames> + + <!-- Preserve the methods that are required in all enumeration classes. --> + + <keepclassmembers extends="java.lang.Enum"> + <method access="public static" + type="**[]" + name="values" + parameters="" /> + <method access="public static" + type="**" + name="valueOf" + parameters="java.lang.String" /> + </keepclassmembers> + + <!-- Explicitly preserve all serialization members. The Serializable + interface is only a marker interface, so it wouldn't save them. + You can comment this out if your library doesn't use serialization. + If your code contains serializable classes that have to be backward + compatible, please refer to the manual. --> + + <keepclassmembers implements="java.io.Serializable"> + <field access ="static final" + type ="long" + name ="serialVersionUID" /> + <field access ="static final" + type ="java.io.ObjectStreamField[]" + name ="serialPersistentFields" /> + <method access ="private" + type ="void" + name ="writeObject" + parameters="java.io.ObjectOutputStream" /> + <method access ="private" + type ="void" + name ="readObject" + parameters="java.io.ObjectInputStream" /> + <method type ="java.lang.Object" + name ="writeReplace" + parameters="" /> + <method type ="java.lang.Object" + name ="readResolve" + parameters="" /> + </keepclassmembers> + + <!-- Your application may contain more items that need to be preserved; + typically classes that are dynamically created using Class.forName --> + + </proguard> +</target> + +</project> |