Để chuyên gia Maven ra khỏi đó: Tôi đang cố gắng đóng gói các tạo phẩm dự án không phải java (.NET) vào một tệp zip duy nhất. Tôi đang gặp 2 vấn đề:Maven tạo lắp ráp zip phẳng
Nếu tôi thay đổi bao bì trong POM tôi để zip <packaging>zip</packaging>
, tôi nhận được thông báo lỗi này: [INFO] Cannot find lifecycle mapping for packaging: 'zip'. Component descriptor cannot be found in the component repository: org.apache.mav en.lifecycle.mapping.LifecycleMappingzip.
OK, không có vấn đề lớn - Tôi đã thay đổi nó để <packaging>pom</packaging>
để thoát khỏi jar vô dụng đó là nếu không tạo trong mục tiêu thư mục
Vấn đề chính của tôi là các tệp tôi đóng gói vào ZIP được lồng trong vài thư mục nhưng tôi cần đặt chúng vào thư mục trên cùng của ZIP. Đây là tệp lắp ráp của tôi:
<assembly>
<id>bin</id>
<formats>
<format>zip</format>
</formats>
<fileSets>
<fileSet>
<directory>${basedir}/${project.artifactId}</directory>
<includes>
<include>**/Bin/Release/*.dll</include>
<include>**/Bin/Release/*.pdb</include>
</includes>
</fileSet>
</fileSets>
</assembly>
Khi tôi chạy tệp này - tôi sẽ nhận tệp ZIP nhưng tệp sẽ được lồng nhau bắt đầu bằng C: \ theo sau là đường dẫn đầy đủ. Để cung cấp cho bạn ý tưởng - dự án bãi đó là mã nhị phân vào cấu trúc sau ProjectFoo\ProjectFoo\subproject1\Bin\Release\foo.dll
và tôi cần cấu hình ZIP\foo.dll
Dưới đây là lắp ráp cắm:
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<descriptors>
<descriptor>assembly.xml</descriptor>
</descriptors>
</configuration>
<executions>
<execution>
<id>zip</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
Có lẽ tôi chỉ cần sử dụng antrun và thực hiện zip ant bài tập?
Chính xác những gì tôi cần! Cảm ơn bạn giàu! – Bostone
bạn được chào đón –
Vẫn còn một vấn đề. Zip vẫn duy trì một thư mục hàng đầu thuộc loại "artifactId-Version". Khi tôi giải nén, tất cả các tệp của tôi sẽ không có trong '/' nhưng trong '/ Foo-1.0-SNAPSHOT /'. Tuy nhiên, các tập tin được sao chép chính xác vào mục tiêu/dll-staging – Bostone