我正在尝试使Maven与ProGuard一起工作。
我要实现以下目标:
在我的源文件上运行ProGuard并生成混淆的类
创建一个引用主类的清单文件,以便我可以将其作为jar执行
解压缩所有关联的库jar,并创建一个包含所有库的巨大jar。该文件只能与.class和.xml文件联系。
将它们组装为.zip和tar.gz文件,其中包括各种README.txt文件等。
到目前为止,我有这样的事情:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.2</version>
<configuration>
<archive>
<manifest>
<mainClass>com.class.path.MainClass</mainClass>
</manifest>
</archive>
<includes>
<include>**/*.class</include>
<include>**/*.xml</include>
</includes>
</configuration>
</plugin>
<plugin>
<groupId>com.pyx4me</groupId>
<artifactId>proguard-maven-plugin</artifactId>
<configuration>
<options>
<option>-allowaccessmodification</option>
</options>
<obfuscate>true</obfuscate>
<injar>classes</injar>
<outjar>${project.build.finalName}.jar</outjar>
<outputDirectory>${project.build.directory}</outputDirectory>
<proguardInclude>src/main/assembly/proguard.conf</proguardInclude>
<libs>
lib/rt.jar</lib>
</libs>
</configuration>
<executions>
<execution>
<phase>process-classes</phase>
<goals>
<goal>proguard</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
<execution>
<id>assembly</id>
<phase>package</phase>
<goals>
<goal>assembly</goal>
</goals>
<configuration>
<descriptors>
<descriptor>
src/main/assembly/bin.xml
</descriptor>
</descriptors>
</configuration>
</execution>
</executions>
</plugin>
但我没有喜悦。谁能给我任何模糊的指示?
预先感谢,马特
这是对我有用的配置
<plugin>
<groupId>com.pyx4me</groupId>
<artifactId>proguard-maven-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>proguard</goal>
</goals>
</execution>
</executions>
<configuration>
<obfuscate>true</obfuscate>
<options>
<option>-allowaccessmodification</option>
<option>-keep public class com.class.path.MainClass { public *; public static *; }</option>
</options>
<injar>${project.build.finalName}.jar</injar>
<outjar>${project.build.finalName}-small.jar</outjar>
<outputDirectory>${project.build.directory}</outputDirectory>
<libs>
<lib>${java.home}/lib/rt.jar</lib>
<lib>${java.home}/lib/jsse.jar</lib>
</libs>
<addMavenDescriptor>false</addMavenDescriptor>
</configuration>
</plugin>
最终的jar是finalName-small.jar
在启用proguard时,我会得到以下警告
问题内容: 我正在尝试使ProGuard成为我们Maven构建过程的一部分。问题在于,官方的Maven插件正在使用不支持Java 7的ProGuard 4.3。是否有任何简便的方法可以使该插件改为使用Proguard 4.8? 我试过为插件指定依赖关系,但ProGuard似乎为Maven模块提供了新结构(proguard-base,proguard- parent等),因此插件不能使用任何大于4.
我有一个Xamarin表单项目,我正试图通过与VST的持续集成与HockeyApps集成。我的应用程序使用Java1.8进行编译,并使用ProGuard压缩android apk文件。但是当java试图编译应用程序时,它发现安装的proguard版本与java 1.8不兼容。错误如下:。。。无法处理类[android/app/ActivityTracker.class]不支持的类版本号[52.0]
我看到了所有这些,所以也遵循了给出的几个步骤,但我无法解决这个问题。奇怪的是,我仍然有这个问题: 当我尝试构建我的项目时,出现1个错误和176个警告。 这是我的proguard文件: 我的build.gradle档案: 我如何解决这个问题?
谈到flexjson库,我在使用dexguard时遇到了问题。在尝试使用JSONDeserializer反序列化时,我一直遇到以下错误。 是否有人有适当的规则,flexjson在Android发布apks中混淆后正常工作? 类似于gson lib的东西。
我已经按照以下步骤安装了ApacheMaven。 > JDK和JAVA_HOME确保安装了JDK,并将“JAVA_HOME”变量添加为Windows环境变量。 下载Apache Maven访问Maven官网链接,下载Maven zip文件,例如:apache-maven-3.2.2-bin.zip.解压缩到你要安装Maven的文件夹。 假设您解压缩到这个文件夹–C:\Program Files\A