私はプロガードに少し戸惑っています。pom.xmlにこの設定があります。まず、<injar>タグが機能しません...このタグを使用すると、proguardの最後の呼び出しに-injarsが含まれません。次に、WEB-INF / lib(1つのjarですべてのコードをコンパイルします)で発生する1つのjarのみを難読化し、他のすべてのlibをフィルタリングできるかどうかはわかりません。
<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>
<proguardVersion>4.8</proguardVersion>
<obfuscate>true</obfuscate>
<maxMemory>1024m</maxMemory>
<includeDependency>false</includeDependency>
<options>
<option>-injars target/Test.war</option>
<option>-ignorewarnings</option>
</options>
<outjar>target/Test-obf.war</outjar>
<attach>false</attach>
<outputDirectory>${project.build.directory}</outputDirectory>
<proguardInclude>${basedir}\proguard.conf</proguardInclude>
<libs>
<lib>${java.home}/lib/rt.jar</lib>
</libs>
<addMavenDescriptor>false</addMavenDescriptor>
<skip>false</skip>
</configuration>
<dependencies>
<dependency>
<groupId>net.sf.proguard</groupId>
<artifactId>proguard</artifactId>
<version>4.4</version>
<scope>runtime</scope>
</dependency>
</dependencies>
</plugin>
その構成では、多くの警告があります。これは、プロガードがWEB-INF/lib内のすべてのjarファイルを難読化しようとしているようです。誰かがそれに光を当てることができますか。前もって感謝します。
追加: すべてのパラメーターの前にある出力の問題は、私にとって非常にトリッキーでした。私が理解したように、pom.xmlでinjarとoutjarの両方を指定するときは、${basedir}を使用しないでください。原因${basedir}は絶対パスに変わり、必然的にプロガードも絶対パスを設定します。