| <!-- This Ant build file illustrates how to process applications, |
| by including ProGuard-style configuration options. |
| Usage: ant -f applications2.xml --> |
| |
| <project name="Applications" default="obfuscate" basedir="../.."> |
| |
| <target name="obfuscate"> |
| <taskdef resource="proguard/ant/task.properties" |
| classpath="lib/proguard.jar" /> |
| |
| <proguard> |
| |
| -verbose |
| |
| <!-- Specify the input jars, output jars, and library jars. --> |
| |
| -injars in.jar |
| -outjars out.jar |
| |
| -libraryjars ${java.home}/lib/rt.jar |
| <!-- -libraryjars junit.jar --> |
| <!-- -libraryjars servlet.jar --> |
| <!-- -libraryjars jai_core.jar --> |
| <!-- ... --> |
| |
| <!-- Save the obfuscation mapping to a file, and preserve line numbers. --> |
| |
| -printmapping out.map |
| -renamesourcefileattribute SourceFile |
| -keepattributes SourceFile,LineNumberTable |
| |
| <!-- Preserve all annotations. --> |
| |
| -keepattributes *Annotation* |
| |
| <!-- Preserve all public applications. --> |
| |
| -keepclasseswithmembers public class * { |
| public static void main(java.lang.String[]); |
| } |
| |
| <!-- Preserve all native method names and the names of their classes. --> |
| |
| -keepclasseswithmembernames class * { |
| native <methods>; |
| } |
| |
| <!-- Preserve the methods that are required in all enumeration classes. --> |
| |
| -keepclassmembers,allowoptimization enum * { |
| public static **[] values(); |
| public static ** valueOf(java.lang.String); |
| } |
| |
| <!-- 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 class * implements java.io.Serializable { |
| static final long serialVersionUID; |
| static final java.io.ObjectStreamField[] serialPersistentFields; |
| private void writeObject(java.io.ObjectOutputStream); |
| private void readObject(java.io.ObjectInputStream); |
| java.lang.Object writeReplace(); |
| java.lang.Object readResolve(); |
| } |
| |
| <!-- Your application may contain more items that need to be preserved; |
| typically classes that are dynamically created using Class.forName --> |
| |
| </proguard> |
| </target> |
| |
| </project> |