2013-06-10 42 views
7

Xin chào: Im phát hiện rằng maven triển khai theo mặc định thay đổi tên tệp để khớp với id phiên bản + artifact. Ví dụ:maven: triển khai tên tệp phần mềm tạo tác

Triển khai tệp jar, với artifact = A và phiên bản = V-0.1 sẽ dẫn đến tệp jar có tên AV-0.1.jar.

Có cách nào để thay đổi tên mặc định của tệp jar trong triển khai, sao cho nó không nối các feild này hoặc để chỉ định tên jar được triển khai cuối cùng một cách rõ ràng?

+0

có thể trùng lặp của [này] (http : //stackoverflow.com/questions/4238944/controlling-maven-final-name-of-jar-artifact) câu hỏi. – dmahapatro

Trả lời

0

câu trả lời đơn giản đó là: Số

Vấn đề đằng sau nó là nếu bạn sẽ thay đổi sơ đồ đặt tên nó sẽ không thể tìm thấy hiện vật trong một kho lưu trữ. Đó là lý do có một lược đồ đặt tên cố định.

3

Câu trả lời phức tạp cho điều đó: Có

Đó là một chút khó khăn và bạn cần phải cẩn thận, vì pom sẽ không được viết lại. Vì vậy, chỉ có kho lưu trữ từ xa maven (artifactory, hoặc nexus) sẽ đặt nó vào đúng cấu trúc thư mục.

Nếu bạn ghi đè lên các mục tiêu triển khai file trong mục tiêu maven triển khai, bạn có thể ghi đè lên các thông số: http://maven.apache.org/plugins/maven-deploy-plugin/deploy-file-mojo.html

Một ví dụ mà luôn luôn sẽ gửi phiên bản 4.5.1 để mối quan hệ sẽ trông như thế này:

 <plugin> 
      <artifactId>maven-deploy-plugin</artifactId> 
      <executions> 
       <execution> 
        <goals> 
         <goal>deploy-file</goal> 
        </goals> 
        <phase>deploy</phase> 
        <configuration> 
         <repositoryId>nexus-site</repositoryId> 
         <url>http://nexus.some.where/nexus-2/content/repositories/releases</url> 
         <file>${build.directory}/${project.build.finalName}.${project.packaging}</file> 
         <generatePom>false</generatePom> 
         <pomFile>pom.xml</pomFile> 
         <version>4.5.1</version> 
        </configuration> 
       </execution> 
      </executions> 
     </plugin> 

(và trước khi ai đó hỏi, một lý do để làm điều gì đó như thế này là làm cho CI trở nên thân thiện hơn. Vì vậy, bằng cách thay thế 4.5.1 bằng ${BUILD_NUMBER} sẽ để lại cho bạn nhiều bản phát hành trong bạn r lưu trữ vật ...)

+0

Cảm ơn! Tôi đã tìm kiếm điều này một lúc rồi! Chỉ có vấn đề tôi nhận được còn lại là tôi sử dụng 'maven-shade-plugin'. Bây giờ tôi triển khai hai tập tin vào hệ thống đích của tôi: Cái cũ với dấu thời gian và cái mới xuất phát từ giải pháp của bạn ở đó ^^ – displayname

0

mvn triển khai: triển khai-file -DartifactId = AAA -Dversion = VVV -Dpackaging = jar

Lệnh trên sẽ đặt các tập tin trong cấu trúc sau.

AAA 
-VVV 
--AAA_VVV.jar 

Nếu bạn chỉ muốn tạo tên của tệp được tạo khác nhau giữa lần đẩy liên tiếp đến tạo tác, bạn có thể sử dụng tham số -Thông số gói. I E. Thiết lập giá trị thời gian hiện

mvn triển khai: triển khai-file -DartifactId = AAA -Dversion = VVV -Dpackaging = 2017_01_31_01_37.jar

AAA 
-VVV 
--AAA_VVV.jar 
--AAA_VVV2017_01_31_01_37.jar