2010-05-02 29 views
16

Tôi đã cấu hình lắp ráp sau:Plugin lắp ráp maven không sử dụng finalName để cài đặt với attach = true?

<build> 
    <plugins> 
     <plugin> 
      <artifactId>maven-assembly-plugin</artifactId> 
      <version>2.2-beta-5</version> 
      <executions> 
       <execution> 
        <id>${project.name}-test-assembly</id> 
        <phase>package</phase> 
        <goals> 
         <goal>single</goal> 
        </goals> 
        <configuration> 
         <appendAssemblyId>false</appendAssemblyId> 
         <finalName>${project.name}-test</finalName> 
         <filters> 
          <filter>src/assemble/test/distribution.properties</filter> 
         </filters> 
         <descriptors> 
          <descriptor>src/assemble/distribution.xml</descriptor> 
         </descriptors> 
         <attach>true</attach> 
        </configuration> 
       </execution> 
       <execution> 
        <id>${project.name}-prod-assembly</id> 
        <phase>package</phase> 
        <goals> 
         <goal>single</goal> 
        </goals> 
        <configuration> 
         <appendAssemblyId>false</appendAssemblyId> 
         <finalName>${project.name}-prod</finalName> 
         <filters> 
          <filter>src/assemble/prod/distribution.properties</filter> 
         </filters> 
         <descriptors> 
          <descriptor>src/assemble/distribution.xml</descriptor> 
         </descriptors> 
         <attach>true</attach> 
        </configuration> 
       </execution> 
      </executions> 
     </plugin> 
    </plugins> 
</build> 

này sản xuất hai zip-files:

  • distribution-prod.zip
  • distribution-test.zip

tôi kỳ vọng cho thuộc tính attach = true là, hai tệp zip được cài đặt với tên như được đưa ra trong pr operty finalName. Nhưng kết quả là, chỉ có một tập tin được cài đặt (đính kèm) để tạo tác. Giao thức maven là:

  • distrib-0.1-SNAPSHOT.zip
  • distrib-0.1-SNAPSHOT.zip

Các plugin được sử dụng vật-id thay vì tài sản finalName! Đây có phải là lỗi không?

Cài đặt cuối cùng sẽ ghi đè cài đặt đầu tiên. Tôi có thể làm gì để cài đặt hai tệp này với các tên khác nhau?

Cảm ơn bạn đã điều tra. Roland

Trả lời

19

Cài đặt cuối cùng sẽ ghi đè lần đầu tiên. Tôi có thể làm gì để cài đặt hai tệp này với các tên khác nhau?

Như dự kiến ​​(Tôi không biết đây có phải là lỗi hay không nhưng đó là cách plugin lắp ráp hoạt động). Để tránh điều này, bạn sẽ phải thiết lập các thuộc tính appendAssemblyId để true và, để có được một kết quả tương đương, để thay đổi finalName để ${project.name} và assemby id-testprod (ví dụ: sử dụng hai mô tả lắp ráp). Một cái gì đó như thế này:

<build> 
    <plugins> 
    <plugin> 
     <artifactId>maven-assembly-plugin</artifactId> 
     <version>2.2-beta-5</version> 
     <executions> 
     <execution> 
      <id>${project.name}-test-assembly</id> 
      <phase>package</phase> 
      <goals> 
      <goal>single</goal> 
      </goals> 
      <configuration> 
      <appendAssemblyId>true</appendAssemblyId> 
      <finalName>${project.name}</finalName> 
      <filters> 
       <filter>src/assemble/test/distribution.properties</filter> 
      </filters> 
      <descriptors> 
       <descriptor>src/assemble/distribution-test.xml</descriptor> 
      </descriptors> 
      </configuration> 
     </execution> 
     <execution> 
      <id>${project.name}-prod-assembly</id> 
      <phase>package</phase> 
      <goals> 
      <goal>single</goal> 
      </goals> 
      <configuration> 
      <appendAssemblyId>true</appendAssemblyId> 
      <finalName>${project.name}</finalName> 
      <filters> 
       <filter>src/assemble/prod/distribution.properties</filter> 
      </filters> 
      <descriptors> 
       <descriptor>src/assemble/distribution-prod.xml</descriptor> 
      </descriptors> 
      </configuration> 
     </execution> 
     </executions> 
    </plugin> 
    </plugins> 
</build> 

đâu distribution-test.xmldistribution-prod.xml kê khai lắp ráp idtestprod tương ứng.

+0

Làm việc như một sự quyến rũ (không thử mã, nhưng nguyên tắc) –

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