6

私はMavenとmaven-war-pluginを使用してWARを構築しています。すべてのJSPはjspc-maven-pluginを使用してプリコンパイルされ、すべてのクラスはJAR(WEB-INF / lib)に入れられます。これまでのところ、すべてが正常に機能しています。ここで、コードを難読化するようにproguard-maven-pluginを構成しようとしています。

最初にコンパイルフェーズですべてのクラスを難読化しようとしましたが、JSPの事前コンパイルで問題が発生しました。パッケージフェーズが定義されている例をいくつか見つけました。しかし、この場合、WARにすでにパックされているJARファイルをアドレス指定する方法がわかりません。最後に、WARを<injar> mywebapp.war</injar>として設定しようとしました。しかし、これも機能していません。私は何が欠けていますか?

        <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>

これを行うためのヒントや例はありますか?

どうもありがとう!デビッド

4

1 に答える 1

7

利用可能なMavenのライフサイクルを見てください。具体的には、デフォルトのライフサイクルです。発生する可能性のある問題は、Mavenがjarプラグインやwarプラグインなどの一部のプラグインで保証できることですが、proguardプラグインなどの他のプラグインでは保証できない場合があります。

実行フェーズをからに変更した場合packageprepare-packageJSPファイルがJARファイルにパッケージ化され、その後WARファイルにパッケージ化される前に難読化されるはずです。そして、そのフェーズは、あなたが持っているかもしれないクラスのコンパイルを妨げるべきではありません。

于 2010-12-23T14:52:05.030 に答える