2012-08-23 3 views
0

그래서 저는 Maven을 모르는 사람들을 배치 할 필요가 없습니다. 그들이 필요한 것은 전쟁의 신선한 건설입니다. 우리 시스템에서는 플러그인을 사용하는 자동 배포와 같은 것을 사용할 수 있는지 의심 스럽기 때문에 Tomcat 플러그인이 종료되었습니다. 또한 우리는 SCM이 지원되지 않기 때문에 다른 프로젝트에 의존하는 프로젝트를 가질 수 없습니다. 프로젝트가 로컬 하위 디렉토리에있을 때 수행 할 수 없다면 말입니다. 그 위에는 조직 레포에 대한 쓰기 권한도 없습니다. 가능성이 있다면 내가 할 수있는 방법을 공개 할 수 없다는 것을 의미한다. 그렇지 않으면 무의미해질 것이다.다중 모듈 프로젝트의 기본 폼에 전쟁을 만들 수 있습니까?

내가 알고 싶은 것은, 프로젝트의 기초에 결과 아카이브가있는 구성 요소 (모듈?) 구조가있어 혼란 스러울 정도로 많은 구성 요소 중에서 찾을 필요가 없다는 것입니다 , 어셈블리, 프로파일 등

답변

1

아마도 maven-dependency-plugin을 사용할 수 있습니다. 빌드가 끝나면 생성 된 war 파일이 원하는 폴더에 복사됩니다.

예를 들어

,의는 다음과 같은 파일 구조는 (이 쉽게 적용 할 수 있습니다)했다고 가정하자 :

- parent folder 
    |- child one (jar) 
    |- child two (war) 

상위 폴더/대상 디렉토리에 아이 두 전쟁 파일을 복사하려면, 당신은 할 수 자식 두 모듈의 pom에 다음 선언이 있어야합니다.

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-dependency-plugin</artifactId> 
    <version>2.5</version> 
    <executions> 
     <execution> 
     <id>copy</id> 
     <phase>install</phase> 
     <goals> 
      <goal>copy</goal> 
     </goals> 
     <configuration> 
      <artifactItems> 
      <artifactItem> 
       <groupId>${groupId}</groupId> 
       <artifactId>${artifactId}</artifactId> 
       <version>${version}</version> 
       <overWrite>true</overWrite> 
       <outputDirectory>${basedir}/../target</outputDirectory> 
       <destFileName>${artifactId}.jar</destFileName> 
      </artifactItem> 
      </artifactItems> 
     </configuration> 
     </execution> 
    </executions> 
</plugin> 

완전히 다른 대상 폴더 (계층의 일부가 아님)를 지정할 수도 있기 때문에 플러그인을 사용하면 매우 편리합니다.

+0

불행히도 내가 사용한 다른 플러그인으로 인해베이스에서 빌드되지 않습니다. : - / – user447607

0

이 내용을 POM에 반영하는 대신 제작 도구 (예 : Jenkins)에서 빌드 후 작업으로 복사합니다.

관련 문제