2017-05-22 4 views
0

나는 컴파일 단계에서 실행되는 커스텀 메이븐 플러그인을 만들었습니다. 플러그인이 클래스 경로에서 리소스를 찾으려고 시도했지만 은 찾을 수 없습니다. 플러그인 :컴파일 단계에서 커스텀 메이븐 플러그인의 리소스를 가져올 수 없습니다.

<plugin> 
    <groupId>com.mygroup</groupId> 
    <artifactId>myplugin-maven-plugin</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <executions> 
     <execution> 
      <phase>compile</phase> 
       <goals> 
        <goal>build</goal> 
       </goals> 
     </execution> 
    </executions> 
</plugin> 

플러그인의 코드에서 내가 사용하고 :

프로젝트의 루트에 MYFILE.TXT를 넣어 시도하는 데, 설치 MVN 청소를 실행할 때 NullPointerException이 결과
InputStream is = this.getClass().getClassLoader().getResource("myFile.txt").openStream(); 

, src 폴더 또는 src/main/resources 폴더. getResource가 을 리턴 할 때마다. 또한 사용하려고 시도 :

InputStream is = Thread.currentThread().getContextClassLoader().getResource("myFile.txt").openStream(); 

또한 모두 getResourceAsStream하지만 아무 도움이.

이것은 컴파일 단계와 관련이 있습니까? 플러그인을 사용하여 입력 파일의 속성을 기반으로 코드를 생성하고 싶습니다.

감사합니다.

+0

여기에 오해됩니다. 플러그인이 getResource()를 통해 리소스에 액세스하려고하면 자체 jar 내에서 검색하거나 플러그인 클래스 경로에서 더 정확하게 검색하지만 ** 생성되는 프로젝트의 클래스 경로에서는 ** 검색하지 않습니다. 소스 코드를 살펴보면 프로젝트 경로에 액세스하는 방법에 대한 maven-resources-plugin ... – khmarbaise

+0

고마워,하지만 올바른 클래스 경로를 찾고 있으므로 프로젝트에서 플러그인을 사용하고 있습니다. 하지만 문제가 발견되었습니다. 컴파일 단계를 실행 중에 지정해서는 안됩니다. 그러므로 나는 내 자신의 질문에 대답 할 것이다. – Kjeld

답변

0

해결책을 찾았습니다. 처음에는 단계를 지정하지 않을 때 문제가 사라 졌다고 생각했지만, 그렇게하지 않으면 플러그인을 전혀 실행하지 않습니다. 저에게있어 트릭은 프로젝트 루트에 myFile.txt가있는 FileInputStream ("myFile.txt")을 사용하는 것입니다.

관련 문제