[英]How to include the jars referenced in “Java Build Path” section of an Eclipse project in a jar file generated with Ant using a build.xml file
[英]Java: How to integrate ProGuard in Jar Project using custom Ant build.xml
我有一个简单的Java项目,它引用了两(2)个库jar文件。 想要集成ProGuard。
这是我当前的build.xml:
<?xml version="1.0" ?>
<project name="Samples" default="dist" basedir=".">
<!-- generate JAR START -->
<description>Samples Library</description>
<!-- Setting global properties for this build -->
<property name="src" location="src" />
<property name="bin" location="bin" />
<target name="dist">
<jar destfile="Samples.jar" basedir="bin/">
<!-- Use ** to include the directory recursively -->
<include name="com/samples/**" />
</jar>
</target>
</project>
我发现了几种集成它的方法,但这是最简单的方法。
<?xml version="1.0" ?>
<project name="Samples" default="dist" basedir=".">
<!-- generate JAR START -->
<description>Samples Library</description>
<!-- Setting global properties for this build -->
<property name="src" location="src" />
<property name="bin" location="bin" />
<target name="dist">
<jar destfile="Samples.jar" basedir="bin/">
<!-- Use ** to include the directory recursively -->
<include name="com/samples/**" />
</jar>
</target>
<!-- generate JAR END -->
<!-- The local.properties file is created and updated by the 'android'
tool.
It contains the path to the SDK. It should *NOT* be checked into
Version Control Systems. -->
<property file="local.properties" />
<!-- The build.properties file can be created by you and is never touched
by the 'android' tool. This is the place to change some of the
default property values used by the Ant rules.
Here are some properties you may want to change/update:
source.dir
The name of the source directory. Default is 'src'.
out.dir
The name of the output directory. Default is 'bin'.
Properties related to the SDK location or the project target should
be updated using the 'android' tool with the 'update' action.
This file is an integral part of the build system for your
application and should be checked into Version Control Systems.
-->
<property file="build.properties" />
<!-- The default.properties file is created and updated by the 'android'
tool, as well as ADT.
This file is an integral part of the build system for your
application and should be checked into Version Control Systems. -->
<property file="default.properties" />
<!-- Add Proguard Tasks -->
<property name="proguard.jar" location="proguard/lib/proguard.jar" />
<taskdef resource="proguard/ant/task.properties"
classpath="${proguard.jar}" />
<proguard configuration="proguard.cfg"/>
</project>
这是proguard.cfg :
-injars Samples.jar
-outjars Samples-out.jar
-libraryjars libs/android.jar
-printmapping out.map
-renamesourcefileattribute SourceFile
-keepattributes Exceptions,InnerClasses,Signature,Deprecated,
SourceFile,LineNumberTable,*Annotation*,EnclosingMethod
-keep public class * {
public protected *;
}
-keepclassmembernames class * {
java.lang.Class class$(java.lang.String);
java.lang.Class class$(java.lang.String, boolean);
}
-keepclasseswithmembernames class * {
native <methods>;
}
-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}
-keepclassmembers class * implements java.io.Serializable {
static final long serialVersionUID;
private 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();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.