| <!-- 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> | |
| <!-- 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> |