You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
103 lines
3.5 KiB
103 lines
3.5 KiB
<!-- This Ant build file illustrates how to process a program library,
|
|
such that it remains usable as a library.
|
|
Usage: ant -f library.xml -->
|
|
|
|
<project name="Library" default="obfuscate" basedir="../..">
|
|
|
|
<target name="obfuscate">
|
|
<taskdef resource="proguard/ant/task.properties"
|
|
classpath="lib/proguard.jar" />
|
|
|
|
<proguard printmapping="out.map"
|
|
renamesourcefileattribute="SourceFile">
|
|
|
|
<!-- Specify the input jars, output jars, and library jars. -->
|
|
|
|
<injar file="library.jar" />
|
|
<outjar file="library_out.jar" />
|
|
|
|
<libraryjar file="${java.home}/lib/rt.jar" />
|
|
|
|
<!-- Keep some useful attributes. -->
|
|
|
|
<keepattribute name="InnerClasses" />
|
|
<keepattribute name="SourceFile" />
|
|
<keepattribute name="LineNumberTable" />
|
|
<keepattribute name="Deprecated" />
|
|
<keepattribute name="*Annotation*" />
|
|
|
|
<!-- Preserve all public classes, and their public and protected fields
|
|
and methods. -->
|
|
|
|
<keep access="public">
|
|
<field access="public protected" />
|
|
<method access="public protected" />
|
|
</keep>
|
|
|
|
<!-- Preserve all .class method names. -->
|
|
|
|
<keepclassmembernames access="public">
|
|
<method type ="java.lang.Class"
|
|
name ="class$"
|
|
parameters="java.lang.String" />
|
|
<method type ="java.lang.Class"
|
|
name ="class$"
|
|
parameters="java.lang.String,boolean" />
|
|
</keepclassmembernames>
|
|
|
|
<!-- Preserve all native method names and the names of their classes. -->
|
|
|
|
<keepclasseswithmembernames includedescriptorclasses="true">
|
|
<method access="native" />
|
|
</keepclasseswithmembernames>
|
|
|
|
<!-- Preserve the methods that are required in all enumeration classes. -->
|
|
|
|
<keepclassmembers allowoptimization="true" type="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 ="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>
|