2012-11-12 18 views
13

Tôi đã có một dự án ở phiên bản 0.0.1-SNAPSHOT và khi chúng tôi xây dựng nó thông qua TeamCity, chúng tôi cũng nhận được thuộc tính build.vcs.number, là bản sửa đổi Subversion đã kích hoạt bản dựng.Thao tác thuộc tính phiên bản dự án để xóa SNAPSHOT?

Trong hội đồng, chúng tôi tạo một tệp zip có tên là foo-distribution-0.0.1-SNAPSHOT.zip, nhưng tôi đã tự hỏi liệu có cách nào để chèn thuộc tính build.vcs.number vào tên tạo tác hay không để cung cấp foo-distribution-0.0.1.12345-SNAPSHOT.zip?

Có một thuộc tính tích hợp chỉ là phần số của số phiên bản hay một số cách khác để tách phần -SNAPSHOT không?

EDIT: Tôi đã thử cài đặt phiên bản pom.xml là $ {my.version} -SNAPSHOT và sau đó xác định my.version trong thuộc tính - thao tác này cho mọi trường hợp ngoại trừ Maven Release Plugin, rằng nó không thể phân tích cú pháp phiên bản (dễ hiểu, nó không thể tự động đoán phiên bản phát triển tiếp theo).

+1

Giải pháp đơn giản nhất để loại bỏ "-SNAPSHOT" là giải phóng tạo phẩm. Điều tốt nhất là đặt số sửa đổi vào tệp kê khai chứ không phải là một phần của tên tệp. Sử dụng một thuộc tính để xác định số phiên bản sẽ không hoạt động và không có ý nghĩa. Bạn có thể sử dụng thuộc tính được lọc trong quá trình tạo và có thể chứa số phiên bản. – khmarbaise

+1

có thể trùng lặp của [Thuộc tính bị mất trong khi phát hành Maven: thực hiện] (http://stackoverflow.com/questions/12397581/properties-lost-during-maven-releaseperform) – maba

Trả lời

35

Tôi nhận ra câu hỏi này là một chút ngày, nhưng tôi chỉ chạy vào một tình huống tương tự, và đây là cách tôi giải quyết nó:

<plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>build-helper-maven-plugin</artifactId> 
    <version>1.8</version> 
    <executions> 
     <execution> 
     <id>parse-version</id> 
     <goals> 
      <goal>parse-version</goal> 
     </goals> 
     </execution> 
    </executions> 
</plugin> 

gì build-helper này Plugin của "phân tích phiên bản" mojo sẽ làm là cung cấp cho bạn các thuộc tính sau mà bạn có thể sử dụng như bạn thấy phù hợp:

parsedVersion.majorVersion 
parsedVersion.minorVersion 
parsedVersion.incrementalVersion 
parsedVersion.qualifier 
parsedVersion.buildNumber 

Điều đó phải bao gồm tất cả các phiên bản mong muốn của bạn "các bộ phận". Tôi hiện đang sử dụng tính năng này để tạo tiện ích mở rộng chrome trong đó phiên bản tệp kê khai không thể bao gồm "-SNAPSHOT" và phải có tối đa 4 số được phân tách bằng dấu chấm. Trong trường hợp sử dụng của tôi, tôi sử dụng sự kết hợp này tạo ra kết quả mong muốn:

"version":"${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}" 

Vì vậy, tôi về cơ bản tước "-SNAPSHOT" để bản dev địa phương của tôi về phần mở rộng của tôi sẽ cài đặt đúng cách để thử nghiệm. Bạn có thể xây dựng bất cứ điều gì bạn muốn với các mảnh. =)

+0

Để tăng phiên bản đó, chuỗi sau có thể được sử dụng: 'newVersion = \ $ {parsedVersion.majorVersion} $ {parsedVersion.minorVersion}. $ {parsedVersion.nextIncrementalVersion} ' – Lonzak

+0

xem http://www.mojohaus.org/build-helper-maven-plugin/usage.html – Naxos84

1

Đối với những người đang tìm kiếm để làm nhiều hơn thế này hoặc muốn loại bỏ SNAPSHOT từ xây dựng số, plugin này là khá hữu ích http://www.mojohaus.org/build-helper-maven-plugin/usage.html

Tôi đặc biệt thấy hữu ích

này Đặt một tài sản bằng cách áp dụng thay thế regex cho một giá trị

<project> 
    ... 
    <build> 
    <plugins> 
     <plugin> 
     <groupId>org.codehaus.mojo</groupId> 
     <artifactId>build-helper-maven-plugin</artifactId> 
     <version>1.9.1</version> 
     <executions> 
      <execution> 
      <id>regex-property</id> 
      <goals> 
       <goal>regex-property</goal> 
      </goals> 
      <configuration> 
       <name>human.version</name> 
       <value>$\{project.version}</value> 
       <regex>-SNAPSHOT</regex> 
       <replacement> pre-release development version</replacement> 
       <failIfNoMatch>false</failIfNoMatch> 
      </configuration> 
      </execution> 
     </executions> 
     </plugin> 
    </plugins> 
    </build> 
    ... 
</project> 
Các vấn đề liên quan