Как запутать веб-приложение с помощью Maven и ProGuard

Я использую Maven и maven-war-plugin для создания своей WAR. Все JSP предварительно скомпилированы с использованием jspc-maven-plugin, и все классы помещаются в JAR (WEB-INF / lib). Пока все работает нормально. Теперь я пытаюсь настроить плагин proguard-maven-plugin для обфускации моего кода.

Сначала я попытался скрыть все классы на этапе компиляции, но затем у меня возникли проблемы с предварительной компиляцией JSP. Я нашел несколько примеров, где определена фаза пакета. Но в этом случае я не знаю, как обращаться к моему файлу JAR, который уже упакован в WAR. Наконец, я попытался просто установить свою WAR как mywebapp.war . Но это тоже не работает. Что мне не хватает?

        <plugin>
            <groupId>com.pyx4me</groupId>
            <artifactId>proguard-maven-plugin</artifactId>
            <version>2.0.4</version>
            <executions>
                <execution>
                    <phase>package</phase>
                    <goals>
                        <goal>proguard</goal>
                    </goals>
                </execution>
            </executions>               
            <configuration>
                <obfuscate>true</obfuscate>
                <includeDependency>false</includeDependency> 
                <injar>${project.artifactId}-v${project.version}.war</injar>
                <outjar>${project.artifactId}-v${project.version}-obf.war</outjar> 
                <outputDirectory>${project.build.directory}</outputDirectory> 
                <maxMemory>256m</maxMemory>
                <libs>
                    <!--  Java Runtime -->
                    <lib>${java.home}/../Classes/classes.jar</lib>
                    <lib>${java.home}/../Classes/jce.jar</lib>
                </libs>                 
                <options>
                    <option>-allowaccessmodification</option>
                    <option>-dontskipnonpubliclibraryclasses</option>
                    <option>-dontskipnonpubliclibraryclassmembers</option>
                </options>
            </configuration>
        </plugin>

У вас есть какие-нибудь подсказки, примеры, как это сделать?

Большое спасибо! Дэвид

6
задан David 22 December 2010 в 23:34
поделиться