我试图在Maven项目中使用proguard这是一个混淆插件,当我运行它时我有一个错误:
无法在项目MavenEnterpriseApp-ear上执行目标com.pyx4me:proguard-maven-plugin:2.0.4:proguard(默认):混淆失败(结果= 1) - > [帮助1]
当我用-e或-X运行maven时我有:
org.apache.maven.lifecycle.LifecycleExecutionException:无法在项目MavenEnterpriseApp-ear上执行目标com.pyx4me:proguard-maven-plugin:2.0.4:proguard(默认):混淆失败(结果= 1 ) 在org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:217) 在org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153) 在org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145) 在org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84) 在org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59) 在org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183) 在org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161) 在org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:319) 在org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
我的插件配置是:
<plugin>
<groupId>com.pyx4me</groupId>
<artifactId>proguard-maven-plugin</artifactId>
<version>2.0.4</version>
<executions>
<execution>
<phase>prepare-package</phase>
<goals>
<goal>proguard</goal>
</goals>
</execution>
</executions>
<configuration>
<obfuscate>true</obfuscate>
<includeDependency>false</includeDependency>
<injar>${project.artifactId}-v${project.version}.ear</injar>
<outjar>${project.artifactId}-v${project.version}-obf.ear</outjar>
<outputDirectory>${project.build.directory}</outputDirectory>
<maxMemory>256m</maxMemory>
</configuration>
</plugin>
正如你所看到的那样,我试图模仿耳朵。在官方页面中:
injar:指定输入jar名称(或战争, 耳朵 ,拉链) 要处理的申请。您可以指定一个类目录,例如 &#39;类&#39 ;.这种方式插件将处理类而不是jar。 您需要将执行绑定到阶段&#39;编译&#39;要么 &#39;过程的类&#39;在这种情况下。
该项目是一个Maven Enterise应用程序项目,基本上我有2个子项目一个有JPA和EJB3资源,另一个是一个带有jsf结构的web项目。当我运行Maven时,我获得了一个耳朵,在这里我有2个二进制文件,一个罐子和一个战争。我有三个 问题:
首先)我想插入什么pom?现在我正在使用pom进入EAR项目,你可以看到:
第二)我可以混淆耳朵吗?
第三)如果第二个是假的:我怎么能特定地混淆耳朵?我试图指定罐子,但我有同样的错误:
无法在项目MavenEnterpriseApp-ear上执行目标com.pyx4me:proguard-maven-plugin:2.0.4:proguard(默认):混淆失败(结果= 1) - &gt; [帮助1]
答案 0 :(得分:1)
尝试将proguard的阶段从“prepare-package”更改为“process-classes”,将injar选项更改为“classes”,并告诉我它是否无效。
HTH。