2010-03-25 3 views
4

내 프로젝트에는 부모 pom과 여러 하위 모듈이 있습니다. install4j를 사용하여 설치 프로그램 배포 가능 파일을 빌드하는 책임이있는 상위 디렉토리에 플러그인을 넣었습니다. 하위 모듈에서이 플러그인을 실행하는 것은 의미가 없으므로 아래에서 볼 수 있듯이 플러그인의 config에 false를 입력했습니다. 문제는 mvn을 새로 설치할 때 install4j를 설치하는 것입니다. 즉, 컴파일, 컴파일 및 부모에서 install4j 플러그인을 실행하지만 하위 모듈에서 실행하고 충돌을 시도합니다.Maven : 부모의 Plugin을 상속받지 못하게하려고합니다.

여기에 플러그인 설정은 내가 상속 = 거짓의 목적을 오해

<plugin> 
    <groupId>com.google.code.maven-install4j</groupId> 
    <artifactId>maven-install4j-plugin</artifactId> 
    <version>0.1.1</version> 
    <inherited>false</inherited> 
    <configuration> 
     <executable>${devenv.install4jc}</executable> 
     <configFile>${basedir}/newinstaller/ehd-demo.install4j</configFile> 
     <releaseId>${project.version}</releaseId> 
     <attach>false</attach> 
     <skipOnMissingExecutable>true</skipOnMissingExecutable> 
    </configuration> 
</plugin> 

암입니까? 이것이 작동하도록하는 올바른 방법은 무엇입니까? maven 2.2.0을 사용하고 있습니다.

답변

1

이것이 몇 가지 방법으로 작동 할 수 있음을 발견했습니다. 내가 지금하고 있어요 방법 ...

1) MVN 깨끗한 다음과 같이 실행)
3을 설치 <inherited>false</inherited>
2) 첫 방송을 툭 MVN install4j :() 비 재귀

-N 컴파일

플러그인은 @aggregator 어노테이션을 사용하여 동일한 효과를 얻을 수도 있습니다.

+1

플러그인의 상속 된 태그는이 플러그인을 부모로 사용하는 폼이 플러그인을 사용하는 것을 방지하는 데 유용합니다. 귀하의 실제 문제는 (내가 이해하는 바에 의하면 또한 광산이기도합니다) 귀하의 포는 또한 집적 장치 (하위 모듈과 함께)이며 하위 모듈에서 모듈이 실행되지 않도록하려는 것입니다. -N으로 실행하면 특정 install4j 플러그인에 대한 작업이 수행되지만 모든 플러그인에 대해 mvn 패키지를 실행하려는 정상적인 경우에는 (플러그인이 재귀 적으로 호출되지 않으므로) 해결되지 않습니다. 그래서 일반적인 문제는 해결되지 않는다고 말하고 싶지만 더 좋은 아이디어는 없습니다. – Miquel

+0

@Miquel님께 감사드립니다. – UrLicht

+2

또한, 친애하는 StackOverflow. 다른 누구도 문제를 해결할 방법이 없을 때 내 자신의 2 살짜리 질문에 대한 내 자신의 대답에 대해 downvoted 할 수있는 기능을 정말 좋아합니다. – UrLicht