2010-04-08 3 views
9

두 프로젝트가 있습니다 : 1) jar 파일을 출력하는 애플릿 프로젝트 2) jar 파일을 호스트해야하는 웹 응용 프로그램 프로젝트.Maven 프로젝트를 다른 프로젝트 리소스로 복사

(1) 완료되면 애플릿 jar 파일을 (2)의 webapp 폴더에 복사해야합니다. 그 목적은 (2) 애플릿 (1)을 인터넷에서 호스팅하는 것입니다.

많은 예제에서는 다른 프로젝트를 라이브러리 종속성으로 사용하는 방법을 설명합니다. 다른 예제는 ant 플러그인을 사용하여 파일을 복사하는 방법을 보여줍니다. 제대로 설정하는 방법에 대해 확신이 없으므로 부모 프로젝트에 'mvn install'이 적시에 복사 작업을 수행합니다.

+0

[종속성 : 복사본] (http://maven.apache.org/plugins/maven-dependency-plugin/examples/copying-artifacts.html)을 사용하십시오. – lexicore

답변

6

애플릿을 webapp의 의존성으로 선언하고 및 copy 목표를 사용하여 패키징하기 전에 webapp에 복사합니다. 전체 솔루션의 힘은 다음과 같습니다 의존성이 원자로 빌드 순서 입니다으로

<project> 
    ... 
    <dependencies> 
    <dependency> 
     <groupId>${project.groupId}</groupId> 
     <artifactId>my-applet</artifactId> 
     <version>${project.version}</version> 
     <scope>provided</scope> <!-- we don't want the applet in WEB-INF/classes --> 
    </dependency> 
    ... 
    </dependencies> 
    <build> 
    <plugins> 
     <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-dependency-plugin</artifactId> 
     <version>2.1</version> 
     <executions> 
      <execution> 
      <id>copy</id> 
      <phase>prepare-package</phase> 
      <goals> 
       <goal>copy</goal> 
      </goals> 
      <configuration> 
       <artifactItems> 
       <artifactItem> 
        <groupId>${project.groupId}</groupId> 
        <artifactId>my-applet</artifactId> 
        <version>${project.version}</version> 
        <outputDirectory>${project.build.directory}/${project.build.finalName}</outputDirectory> 
        <destFileName>the-applet.jar</destFileName> 
       </artifactItem> 
       </artifactItems> 
      </configuration> 
      </execution> 
     </executions> 
     </plugin> 
     ... 
    </plugins> 
    </build> 
</project> 

애플릿을 선언 (하지만 난이 필요합니다 100 % 확실하지 않다) .

+0

네, 그게 100 % 일했습니다. 너 빠르구나! 그리고 예, 원자로는 종속성을 요구했습니다 (제공된 상태로 설정). – Thomas

+0

@ 토마스 다행스럽게도 도움이되었습니다. 의견을 보내 주셔서 감사합니다 (그리고 나의 작은 의심을 확인해 주셔서). –

+0

** 이 제공되는 은 단지 ** WEB-INF/classes **가 아닌 ** WEB-INF/lib **에 jar 파일이 복사되지 않도록합니다. 그러나 중복 복사를 방지하고 이것이 중요한 포인트입니다. 유용한 답장, 게시 해 주셔서 감사합니다. –

관련 문제