2014-09-22 3 views
1

대형, 다중 모듈 메이븐 프로젝트가 있습니다. 나는 단계를 컴파일 후 주위에 약간의 생성 된 파일을 이동하려는, 그래서 부모 pom.xml 파일에 다음 플러그인을 추가 한 :다중 모듈 프로젝트의 각 모듈에 대해 동일한 ant 빌드 파일로드?

<plugin> 
    <artifactId>maven-antrun-plugin</artifactId> 
    <version>1.7</version> 
    <executions> 
    <execution> 
     <id>move-stuff</id> 
     <phase>compile</phase> 
     <goals> 
     <goal>run</goal> 
     </goals> 
     <configuration> 
     <target> 
      ... lots of ant stuff here ... 
     </target> 
     </configuration> 
    </execution> 
    </executions> 
</plugin> 

이 작동하지만, 개미 작업 물건을 많이가 target 요소 사이에있다 , 이는 올바르게 개미 build.xml 파일로 이동해야합니다.

<configuration> 
    <ant antfile="build.xml"/> 
</configuration> 

그러나이 파일의 위치는이 부모 pom.xml 모두로드 할 수있는 방법으로 지정 될 수 없습니다 : 문제는 내가 플러그인에 build.xml 파일의 위치를 ​​지정해야한다는 것입니다 각 하위 모듈에 pom.xml. 예를 들어, ${project.basedir}/build.xml을 사용할 수 없습니다. 최상위 프로젝트 디렉토리가 아닌 각 모듈에 대한 결과를 제공하기 때문입니다. 마찬가지로 자식 모듈에서만 작동하고 부모 모듈에서는 작동하지 않으므로 ../build.xml을 사용할 수 없습니다.

내 프로젝트의 모든 모듈에서 사용할 수있는 maven-antrun-plugin에 앤티 파 일 위치를 지정하는 방법이 있습니까? 아니면 내 pom.xml 파일에 개미 코드를 많이 놔두고 있습니까? 이것에

+0

개미를 할 필요가있는 부모를 피할 수있는 방법이 있습니까? 또는 두 개의 개미 파일로 분리하는 방법에 대해 부모와 자녀가 수행하는 작업은 어떻게됩니까? – Raghuram

+0

각 자식 모듈에'maven-antrun-plugin'을 추가하여 분리 할 수 ​​있습니다. (예를 들어 _../build/xml_와 같은) 일반적인 위치를 가리키고 있지만, 많은 복제를 의미 할뿐만 아니라 추한 외부 의존. 두 가지를 피하기를 원하지만 유일한 선택 일 수 있습니다. –

답변

0

한 가지 방법은 user.dir 속성을 사용하는 것입니다

물론
<target> 
     <ant antfile="${user.dir}/build.xml"/> 
    </target> 

, 루트 프로젝트에서 빌드를 실행할 때 만 작동합니다.

관련 문제