2010-12-22 3 views
6

Maven과 maven-war-plugin을 사용하여 내 WAR를 빌드합니다. 모든 JSP는 jspc-maven-plugin을 사용하여 미리 컴파일되며 모든 클래스는 JAR (WEB-INF/lib)에 저장됩니다. 지금까지 모든 것이 잘 작동합니다. 이제 코드를 난독 화하도록 proguard-maven-plugin을 구성하려고합니다.Maven과 ProGuard를 사용하여 웹 애플리케이션을 난독 화하는 방법

처음에는 컴파일 단계에서 모든 클래스를 난독 화하려고했지만 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> 

이 작업을 수행하기위한 힌트가 있습니까?

고맙습니다. David

+0

오류에 대한 자세한 정보를 제공해 주시겠습니까? – Jcs

답변

6

사용할 수있는 Maven lifecycles을 살펴보십시오. 특히 기본 수명주기. Maven은 항아리 및 전쟁 플러그인과 같은 일부 플러그인에서 보증 할 수 있지만 다른 플러그인은 Proguard 플러그인과 같이 보장 할 수 없다는 점에서 문제가 될 수 있습니다.

실행 단계를 package에서 prepare-package으로 변경하면 JSP 파일이 JAR 파일로 패키징되기 전에 난독 화되어 WAR 파일로 가져와야합니다. 그리고 그 단계는 여러분이 가질 수있는 수업의 편집을 방해해서는 안됩니다.

+0

jgifford25, 올바른 방향으로 나를 가리켜 주셔서 감사합니다. 패키지 준비 단계가 핵심입니다. 이제 예상대로 작동합니다. 감사. – David

+3

고정 된 설정을 업로드 할 수 있습니까? – Daniel

+0

변경 ' 패키지'to' 확인' –