2011-02-09 31 views
8

Tôi có một dự án java mavenized (Maven2) mà tôi muốn xây dựng thành một cái bình, đủ dễ dàng bằng cách cung cấp các mô tả jar-with-dependenciesRef trong tệp pom.xml.xây dựng một cái lọ và bao gồm nó trong một zip với maven-assembly-plugin

Tuy nhiên, tôi cũng cần triển khai dự án của mình bằng zip với một số tệp .exe và .bat, trong số những tệp khác, từ thư mục bin gọi bình. (Tôi đang sử dụng Tanuki nhưng nó không quan trọng đối với trường hợp sử dụng mà tôi nghĩ)

Nói cách khác, tôi cần xây dựng trong đó nguồn đầu tiên của tôi (và phụ thuộc) được đóng gói vào một cái bình và bình đó được đưa vào zip với một số tệp bổ sung từ thư mục bin.

Tôi nên đặt gì trong tệp pom.xml và 'assembly'.xml?

Trả lời

8

Maven-assembly-plugin là công cụ phù hợp để thực hiện điều đó.

Bạn phải khai báo plugin này trong phần "xây dựng" của pom và tạo tệp cấu hình "assembly.xml" khác tại gốc của dự án của bạn. Trong tệp này, bạn sẽ xác định nội dung của tệp zip của bạn.

Các tùy chọn cấu hình được mô tả trên trang web chính thức: http://maven.apache.org/plugins/maven-assembly-plugin/

Dưới đây là một ví dụ cấu hình cơ bản của plugin này cần phù hợp với nhu cầu của bạn.

POM config:

<plugin> 
    <artifactId>maven-assembly-plugin</artifactId> 
    <configuration> 
     <finalName>zipfile</finalName> 
     <descriptors> 
      <descriptor>${basedir}/assembly.xml</descriptor> 
     </descriptors> 
    </configuration> 
    <executions> 
     <execution> 
      <id>make-assembly</id> 
      <phase>package</phase> 
      <goals> 
       <goal>single</goal> 
      </goals> 
     </execution> 
    </executions> 
</plugin> 

hội config:

<assembly> 
    <formats> 
     <format>zip</format> 
    </formats> 

    <fileSets> 
     <fileSet> 
      <directory>to_complete</directory> 
      <outputDirectory /> 
      <includes> 
       <include>**/*.jar</include> 
       <include>**/*.bat</include> 
       <include>**/*.exe</include> 
      </includes> 
     </fileSet> 
    </fileSets> 
</assembly> 
+0

Cám ơn câu trả lời của bạn, nó là khởi đầu đá rất quan trọng tôi cần phải làm cho nó làm việc. – NomeN

+1

Tôi đã cần phải thêm một mô tả khác làm cho bình của tôi mặc dù. Trên thực tế tôi chỉ cần sao chép các định dạng mô tả jar-với-phụ thuộc từ các trang web bạn đã đề cập, như sử dụng jar-với-phụ thuộc descriptorRef bao bọc xây dựng zip. tức là nó xây dựng cái hũ 'sic' đầu tiên sau đó là zip và sau đó là with-dependencies.jar, nó xây dựng một zip với jar đầu tiên (vô ích) nhưng không có quyền thứ hai, kỳ lạ ?! – NomeN

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