2010-04-08 52 views
9

Có hai dự án: 1) dự án applet xuất ra tệp jar 2) dự án ứng dụng web sẽ lưu trữ tệp jar.Đầu ra dự án Maven sao chép vào các tài nguyên dự án khác

Sau khi (1) xây dựng xong, tệp jar applet sẽ được sao chép vào thư mục webapp của (2). Mục đích là (2) sẽ lưu trữ applet (1) trên Internet.

Rất nhiều ví dụ giải thích cách sử dụng một dự án khác làm phụ thuộc thư viện. Các ví dụ khác, cho thấy cách sử dụng ant plugin để sao chép các tập tin. Tôi không chắc chắn về cách thiết lập đúng cách này, do đó 'mvn install' trên dự án mẹ sẽ thực hiện sao chép vào đúng thời điểm.

+0

Sử dụng [dependency: copy] (http://maven.apache.org/plugins/maven-dependency-plugin/examples/copying-artifacts.html). – lexicore

Trả lời

6

Tôi sẽ tuyên bố applet là phụ thuộc của webapp, sao chép nó vào webapp ngay trước khi đóng gói bằng cách sử dụng Dependency plugin và mục tiêu copy của nó. Toàn bộ sức mạnh giải pháp trông như thế này:

<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> 

Tuyên bố applet như phụ thuộc là cho lò phản ứng xây dựng trật tự (nhưng tôi không chắc chắn 100% nó là cần thiết) .

+0

Yep, đã hoạt động 100%. Bạn đang nhanh chóng! Và, có, lò phản ứng yêu cầu sự phụ thuộc (thiết lập để cung cấp). – Thomas

+0

@Thomas Rất vui vì nó rất hữu ích. Cảm ơn phản hồi (và để xác nhận chút nghi ngờ của tôi). –

+0

Chỉ có một nhận xét cực kỳ nhỏ: ** được cung cấp ** giữ không cho phép sao chép vào ** WEB-INF/lib **, chứ không phải ** WEB-INF/classes **. Nhưng nó ngăn không cho nó bị sao chép dư thừa và đó là điểm quan trọng. Trả lời hữu ích, cảm ơn bạn đã đăng bài. –

Các vấn đề liên quan