在企业Java应用程序Proguard的配置(Proguard configuration on a

2019-10-16 13:26发布

我想在一个Maven项目中使用proguard的,这是一个模糊处理插件,当我运行它,我有一个错误:

项目MavenEnterpriseApp耳proguard的(默认):未能执行目标com.pyx4me:proguard的,Maven的插件:2.0.4混淆失败(结果= 1) - > [求助1]

当我运行-e行家或-XI有:

org.apache.maven.lifecycle.LifecycleExecutionException:未能执行目标com.pyx4me:proguard的,Maven的插件:2.0.4:对项目MavenEnterpriseApp耳proguard的(默认):混淆在org.apache失败(结果= 1)。 maven.lifecycle.internal.MojoExecutor.execute在org.apache.maven.lifecycle.internal.MojoExecutor(MojoExecutor.java:217)在org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)。执行(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>

正如你可以看到我试图ofuscate耳朵。 在官方网页:

injar:指定输入罐子名称(或战争, 耳朵 ,拉链)的应用程序的进行处理。 你可以指定一个类目录,例如“类”。 这样,插件会处理的类,而不是罐子。 您将需要在这种情况下,执行相“编译”或“工艺类”进行绑定。

该项目是一个Maven Enterise应用程序项目,基本上我有2个子项目的一个JPA和EJB3资源,另一种是使用JSF的结构是一个web项目。 当我运行Maven我取得的耳朵,在此我有2个二进制一个罐子,一战。 我有三个问题:

前)在什么POM,我想将其插入? 现在我使用的POM到EAR项目,你可以看到:

二)我可以obfuscatean的耳朵?

三)如果第二个是假的:我怎么能混淆specificlly耳朵? 我试图指定的罐子,但我recive同样的错误不断:

项目MavenEnterpriseApp耳proguard的(默认):未能执行目标com.pyx4me:proguard的,Maven的插件:2.0.4混淆失败(结果= 1) - > [求助1]

Answer 1:

尝试从“准备包”改变proguard的阶段分为“过程类”,改变injar选项为“类”,让我知道,如果它不能正常工作。

HTH。



文章来源: Proguard configuration on a Enterprise Java Application