2016-06-23 2 views
0

내 스윙 어플에서는 스프링 부트를 사용했습니다. 내 병을 난독 화하기 위해 메이븐 플러그인 (maven plug-in)과 함께 프로 가드 (proguard)를 사용할 때까지는 완벽하게 작동합니다. 이제 응용 프로그램 "jar"을 시작하려고하면 오류가 발생합니다.proguard가 실행 가능한 jar를 만들 수없는 스프링 부트

나는 콘솔에서의 pom.xml에게

<build> 
     <plugins> 
      <plugin> 
       <groupId>com.github.wvengen</groupId> 
       <artifactId>proguard-maven-plugin</artifactId> 
       <version>2.0.6</version> 
       <dependencies> 
        <dependency> 
         <groupId>net.sf.proguard</groupId> 
         <artifactId>proguard-base</artifactId> 
         <version>4.10</version> 
        </dependency> 
       </dependencies> 
       <executions> 
        <execution> 
         <phase>package</phase> 
         <goals> 
          <goal>proguard</goal> 
         </goals> 
        </execution> 
       </executions> 
       <configuration> 
        <proguardVersion>4.10</proguardVersion> 
        <options> 
         <option>-keep public class com.mycompany.app.Main{public static void main(java.lang.String[]);}</option> 
         <option>-keep public class org.springframework.** { *; }</option> 
        </options> 
        <libs> 
         <lib>${java.home}/lib/rt.jar</lib> 
         <lib>${java.home}/lib/jce.jar</lib> 
        </libs> 
       </configuration> 
      </plugin> 

      <plugin> 
       <groupId>org.springframework.boot</groupId> 
       <artifactId>spring-boot-maven-plugin</artifactId> 
       <executions> 
        <execution> 
         <goals> 
          <goal>repackage</goal> 
         </goals> 
        </execution> 
       </executions> 
      </plugin> 

     </plugins> 
     <finalName>Application</finalName> 
    </build> 

오류이 질문

Spring Boot obfuscator

NullPointerException: ProGuard, Spring Boot

를 참조 이미 한

이 스프링에 의해 반사를 통해 호출로
[2016-06-23 18:39:00.110] boot - 240 ERROR [main] --- SpringApplication: Application startup failed 
java.lang.IllegalStateException: Failed to execute CommandLineRunnerat org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:809) 
at org.springframework.boot.SpringApplication.callRunners(SpringApplication.java:790) 
at org.springframework.boot.SpringApplication.afterRefresh(SpringApplication.java:777) 
at org.springframework.boot.SpringApplication.run(SpringApplication.java:308) 
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1191) 
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1180) 
at com.mycompany.app.Main.main(Unknown Source) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:606) 
at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:54) 
at java.lang.Thread.run(Thread.java:745) 
Caused by: java.lang.NullPointerException 
at com.mycompany.app.Main.run(Unknown Source) 
at org.springframework.boot.SpringApplication.callRunner(SpringApplicati 
on.java:806) 
Exception in thread "main" java.lang.RuntimeException: java.lang.reflect.Invocat 
ionTargetException 
at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:62) 
at java.lang.Thread.run(Thread.java:745) 
Caused by: java.lang.reflect.InvocationTargetException 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces 
sorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:606) 
at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:54)... 1 more 
Caused by: java.lang.IllegalStateException: Failed to execute CommandLineRunner 
at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:809) 
at org.springframework.boot.SpringApplication.callRunners(SpringApplication.java:790) 
at org.springframework.boot.SpringApplication.afterRefresh(SpringApplication.java:777) 
at org.springframework.boot.SpringApplication.run(SpringApplication.java:308) 
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1191) 
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1180) 
at com.mycompany.app.Main.main(Unknown Source)  ... 6 more 
Caused by: java.lang.NullPointerException 
at com.mycompany.app.Main.run(Unknown Source) 
at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:806) 

답변

1

그것은는 다음의 방법처럼 빠져 같습니다

당신은 명시 적으로이 같은 규칙을 사용하여 계속해야
com.mycompany.app.Main.run(...) 

:

-keep class com.mycompany.app.Main { 
    *** run(...); 
} 

을 어쩌면 그 이후에 더 많은 규칙을 지켜야 할 것입니다.

+0

오프닝 '{'at '(인수 번호 108) – Harshil

+0

코드 조각을 테스트 한 결과 문법적으로 정확합니다. 구성의 108 행에 내용을 게시 할 수 있습니까? –

+0

내 마지막에서 실수였습니다. 잘 작동합니다. 고마워요. – Harshil

관련 문제