私はもう1つのプロジェクトの一部です。私はプロジェクトのjarを作るためにプロセスを構築するmavenを使用しています。私はそれを難読化するためにProGuardを使用しました。私は、UI要求を処理するいくつかのコントローラを持っています。ProGuard:難読化されたjarは機能しませんが、難読化されていないjarは動作しています
質問私の問題は、難読化されていないjarが動作していることです。すべてのコントローラがヒットしていますが、難読化されたjarが動作していません(コントローラがヒットしません)。難読化の問題は何ですか?
マイServlet.XML:
<context:component-scan base-package="myPackage.controllers" />
<mvc:annotation-driven />
サンプルコントローラコード:ProGuardのに関連
私のpom.xml内容:
<plugin>
<groupId>com.github.wvengen</groupId>
<artifactId>proguard-maven-plugin</artifactId>
<version>2.0.13</version>
<dependencies>
<dependency>
<groupId>net.sf.proguard</groupId>
<artifactId>proguard-base</artifactId>
<version>5.2.1</version>
<scope>runtime</scope>
</dependency>
</dependencies>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>proguard</goal>
</goals>
</execution>
</executions>
<configuration>
<maxMemory>576m</maxMemory>
<obfuscate>true</obfuscate>
<!-- File with proguard configuration -->
<proguardInclude>${basedir}/proguard.conf</proguardInclude>
<libs>
<lib>${java7home}/jre/lib/rt.jar</lib>
<lib>${java7home}/jre/lib/jce.jar</lib>
</libs>
</configuration>
</plugin>
マイProGuard.confファイルの内容:
-dontnot
-dontwarn
-dontshrink
-dontoptimize
-keep public class * { public protected *;}
-keep class myPackage.controllers.** { public protected *;}
-keepattributes SourceFile,Signature,LineNumberTable,Exceptions, *Annotation*
-keepparameternames
-printmapping '${logFilesPath}/${project.artifactId}.log'
難読化されたjarファイルを確認したところ、すべての注釈が保持されます。 私の情報パッケージには、パッケージレベルのアクセス権しか持たない他のクラスもあります。だからそれらも難読化されている。しかし、RequestMappingsを持つすべてのクラスは公開されており、難読化されていません。
マイ実行環境:
1)は、Java 1.7の私のプロジェクトのために。 5.2.1
3)春:4.0.9
4)ジャクソン:1.9.11
しかし、このjarファイルは、Java 1.82上で実行されているプロジェクト)ProGuardのバージョンに置かれつつあります
(注:未ofuscated jarファイルが動作しますが、難読化されたが、上記の環境で動作していない)
難読化されたjarが起動するときにエラーが発生しますか?タイムアウトが発生していますか? – Zymus
番号。それは読書と読書と出力ジャーを準備するだけです。何か私が逃した?また、.m2フォルダからいくつかのjarファイルが必要です。 – SuhasD