Yrl*_*lec 18 java proguard maven
我正在尝试将ProGuard作为Maven构建过程的一部分.问题是官方的Maven插件使用的是ProGuard 4.3,它不支持Java 7.有没有简单的方法让插件使用Proguard 4.8?
我已经尝试指定插件的依赖项,但ProGuard似乎有一个新的Maven模块结构(proguard-base,proguard-parent等),所以插件不能使用任何版本> 4.4.这是我目前的pom看起来如何:
<plugin>
<groupId>com.pyx4me</groupId>
<artifactId>proguard-maven-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>proguard</goal>
</goals>
</execution>
</executions>
<configuration>
<proguardVersion>4.8</proguardVersion>
<obfuscate>true</obfuscate>
<options>
<option>-allowaccessmodification</option>
<option>-keep public class com.degoo.ui.ClientBackendStarter { 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>
<dependencies>
<dependency>
<groupId>net.sf.proguard</groupId>
<artifactId>proguard</artifactId>
<version>4.8</version>
<scope>runtime</scope>
</dependency>
</dependencies>
</plugin>
Run Code Online (Sandbox Code Playgroud)
有什么建议?
Ber*_*d S 23
我使用的是proguard-maven-plugin com.github.wvengen.注意不同groupId.这样我可以使用最新的proguard-base神器5.0.两者都在Maven Central.以下是我的pom.xml中的proguard-base部分现在的样子:
父pom.xml:
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>com.github.wvengen</groupId>
<artifactId>proguard-maven-plugin</artifactId>
<version>2.0.8</version>
<dependencies>
<dependency>
<groupId>net.sf.proguard</groupId>
<artifactId>proguard-base</artifactId>
<version>5.0</version>
<scope>runtime</scope>
</dependency>
</dependencies>
</plugin>
[...]
Run Code Online (Sandbox Code Playgroud)
这是我孩子pom.xml的其余部分,但你可能想要修改它:
<build>
<plugins>
<plugin>
<groupId>com.github.wvengen</groupId>
<artifactId>proguard-maven-plugin</artifactId>
<executions>
<execution>
<id>process-classes-with-proguard</id>
<phase>process-classes</phase>
<goals>
<goal>proguard</goal>
</goals>
<configuration>
<maxMemory>256m</maxMemory>
<injar>classes</injar>
<libs>
<lib>${rt.jar.path}</lib>
<lib>${jsse.jar.path}</lib>
</libs>
<obfuscate>true</obfuscate>
<attach>true</attach>
<addMavenDescriptor>false</addMavenDescriptor>
<proguardInclude>${project.basedir}/proguard.conf</proguardInclude>
</configuration>
</execution>
</executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)
更新:对于我的Android项目,我没有使用像proguard-maven-plugin这样的专用Proguard插件,因为android-maven-plugin处理ProGuard混淆本身,并且更好地集成到Android的构建过程中.
我在这里找到了一个解决方案:https://groups.google.com/forum/?fromgroups#!topic/pyx4me-users/NUZi1oySvQE.基本上我必须下载并安装ProGuard到我的本地仓库.
| 归档时间: |
|
| 查看次数: |
22044 次 |
| 最近记录: |