Конфигурация Proguard в приложении Enterprise Java - PullRequest
1 голос
/ 08 января 2012

Я пытаюсь использовать proguard в проекте Maven. Это запутанный плагин, когда я запускаю его, у меня появляется ошибка:

Не удалось выполнить цель com.pyx4me: proguard-maven-plugin: 2.0.4: proguard (по умолчанию) в проекте MavenEnterpriseApp-ear: обфускация не удалась (результат = 1) -> [Help 1]

при запуске maven с -e или -XI имеют:

org.apache.maven.lifecycle.LifecycleExecutionException: не удалось выполнить цель com.pyx4me: proguard-maven-plugin: 2.0.4: proguard (по умолчанию)в проекте MavenEnterpriseApp-ear: обфускация не удалась (результат = 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.executer (LifecycleStar.java:59)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.В этом случае вам необходимо привязать выполнение к этапу 'compile' или 'process-classes'.

Проект представляет собой проект приложения Maven Enterise, в основном у меня есть 2 подпроекта, один с JPAресурсы EJB3, а другой - веб-проект со структурой jsf.Когда я запускаю Maven, я получаю ухо, у меня есть 2 бинарных файла и банка.У меня три вопроса:

Первый) В какой пом я должен его вставить?теперь я использую пом в проекте EAR, как вы можете видеть:

enter image description here

Второй) Я могу скрыть ухо?

Третий) Если второйложно: как я могу конкретно запутать уши?Я пытаюсь указать банки, но получаю одну и ту же ошибку:

Не удалось выполнить цель com.pyx4me: proguard-maven-plugin: 2.0.4: proguard (по умолчанию) для проекта MavenEnterpriseAppгод: обфускация не удалась (результат = 1) -> [Помощь 1]

1 Ответ

1 голос
/ 22 июня 2012

Попробуйте изменить фазу proguard с "prepare-package" на "process-classes", измените параметр injar на "classes" и дайте мне знать, если он не работает.

НТН.

...