2015-01-26 17 views
7

Tôi có một dự án đa mô-đun với một pom cha mẹ chung cho tất cả các mô-đun và một tập hợp/xây dựng pom. Tôi đang cố gắng sử dụng maven-versions-plugin để cập nhật/thiết lập các phiên bản của tất cả các mô-đun của tôi, nhưng nó vẫn bỏ qua các mô-đun con.Làm cách nào để sử dụng phiên bản-maven-plugin để đặt các phiên bản mô-đun con?

Dự án bố trí: - common/pom.xml (xây dựng pom) - common/superpom/pom.xml (mẹ pom) - module1/pom.xml (module1 pom) - module2/pom.xml (module2 pom)

common/pom.xml:

<project> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>com.bic</groupId> 
    <artifactId>builder</artifactId> 
    <version>1.0-SNAPSHOT</version> 
    <packaging>pom</packaging> 
    <name>Builder</name> 

    <modules> 
     <module>../module1</module> 

     <!-- POM Component Versionning --> 
     <module>../module2</module> 
    </modules> 
<build> 
    <plugins> 

     <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>versions-maven-plugin</artifactId> 
      <version>2.1</version> 
     </plugin> 

    </plugins> 
</build> 
</project> 

tôi đã thử thêm các plugin để xây dựng pom (common/pom.xml) và sau đó gọi:

mvn versions:set -DnewVersion=999999 

Maven liệt kê tất cả các đạo cụ nó được tìm thấy trong các mô-đun đứa trẻ, vì vậy tôi biết điều đó là phân tích tất cả chúng đúng cách:

Props: {project.version=50, project.parent.version=1.0-SNAPSHOT, project.parent.groupId=com.bic, project.artifactId=module1, project.groupId=com.bic, project.parent.artifactId=common} 
Props: {project.version=50, project.parent.version=1.0-SNAPSHOT, project.parent.groupId=com.bic, project.artifactId=module2, project.groupId=com.bic, project.parent.artifactId=common} 

nhưng nó không thực sự cập nhật các phiên bản của bất kỳ poms mô-đun, đó là những gì Tôi đang tìm cách làm.

[INFO] Reactor Summary: 
[INFO] 
[INFO] Module1 ........................................ SKIPPED 
[INFO] Module2 ........................................ SKIPPED 
[INFO] Builder ........................................ SUCCESS [ 2.037 s] 
[INFO] ------------------------------------------------------------------------ 
[INFO] BUILD SUCCESS 
[INFO] ------------------------------------------------------------------------ 
[INFO] Total time: 3.975 s 
[INFO] Finished at: 2015-01-26T11:48:11-05:00 
[INFO] Final Memory: 24M/44M 
[INFO] ------------------------------------------------------------------------ 

Và mục tiêu update-child-modules không cho phép tôi explictly đặt số phiên bản cho mô-đun con.

Tôi có sử dụng plugin không chính xác không?

+0

@Mysterion - Tôi đã đọc bài đăng SO đó và nếu bạn nhận thấy bài đăng, vẫn không có câu trả lời rõ ràng cho vấn đề của tôi. Tôi vẫn không chắc chắn làm thế nào để có được các mô-đun con để cập nhật. –

Trả lời

2

Không thể tìm ra cách thực hiện nó bằng cách sử dụng plugin-maven-plugin trực tiếp, vì vậy tôi đã kết thúc bằng cách thực hiện thủ công.

find . -name "pom.xml" -exec mvn versions:set -DnewVersion=1.0.3-SNAPSHOT -f {} \; 

Điều này đã kết thúc việc tìm tất cả các mô-đun con của tôi và cập nhật số phiên bản trong mỗi mô-đun. Chắc chắn chậm hơn so với việc sử dụng các plugin trên cha mẹ vì nó được thiết kế để được thực hiện, nhưng chức năng.

0

Đây là một chút muộn cho bữa tiệc, nhưng tôi chỉ tìm thấy câu trả lời. Bạn cần chạy các phiên bản: đặt mục tiêu trực tiếp trên dự án mẹ. Nó sẽ cẩn thận để quét cho một tập hợp POM gần đó (có lẽ chỉ tìm kiếm một thư mục, nhưng tôi không tích cực), và sẽ cập nhật phụ huynh, tập hợp, và tất cả các mô-đun con giống như bạn mong đợi.

Các POM gốc là aggregator và danh sách phụ huynh, module1 và module2 dạng module:

DANIJOH2-M-V0MA:test danijoh2$ ls 
module1 module2 parent pom.xml 

Gốc aggregator POM, module1 và module2 tất cả các tham chiếu đến phụ huynh/pom.xml như cha mẹ POM. Chuyển sang phụ huynh và chạy phiên bản: đặt mục tiêu:

DANIJOH2-M-V0MA:test danijoh2$ cd parent 
DANIJOH2-M-V0MA:parent danijoh2$ ls 
pom.xml 

DANIJOH2-M-V0MA:parent danijoh2$ mvn org.codehaus.mojo:versions-maven-plugin:2.1:set -DnewVersion=1.0.0 -DgenerateBackupPoms=false 
[INFO] Scanning for projects... 
[INFO]                   
[INFO] ------------------------------------------------------------------------ 
[INFO] Building parent 1.0.0-SNAPSHOT 
[INFO] ------------------------------------------------------------------------ 
[INFO] 
[INFO] --- versions-maven-plugin:2.1:set (default-cli) @ parent --- 
[INFO] Searching for local aggregator root... 
[INFO] Local aggregation root: /Users/danijoh2/Desktop/test 
[INFO] Processing com.cisco.dan.test:parent 
[INFO]  Updating project com.cisco.dan.test:parent 
[INFO]   from version 1.0.0-SNAPSHOT to 1.0.0 
[INFO] 
[INFO] Processing com.cisco.dan.test:aggregator 
[INFO]  Updating parent com.cisco.dan.test:parent 
[INFO]   from version 1.0.0-SNAPSHOT to 1.0.0 
[INFO]  Updating project com.cisco.dan.test:aggregator 
[INFO]   from version 1.0.0-SNAPSHOT to 1.0.0 
[INFO] 
[INFO] Processing com.cisco.dan.test:module1 
[INFO]  Updating parent com.cisco.dan.test:parent 
[INFO]   from version 1.0.0-SNAPSHOT to 1.0.0 
[INFO]  Updating project com.cisco.dan.test:module1 
[INFO]   from version 1.0.0-SNAPSHOT to 1.0.0 
[INFO] 
[INFO] Processing com.cisco.dan.test:module2 
[INFO]  Updating parent com.cisco.dan.test:parent 
[INFO]   from version 1.0.0-SNAPSHOT to 1.0.0 
[INFO]  Updating project com.cisco.dan.test:module2 
[INFO]   from version 1.0.0-SNAPSHOT to 1.0.0 
0

Một giải pháp là introduced trong phiên bản 2.5 của plugin phiên bản-maven-plugin

mvn versions:set -DnewVersion=1.6-SNAPSHOT -DprocessAllModules=true 

hoặc nếu như tôi bạn cần phải buộc các phiên bản :

mvn org.codehaus.mojo:versions-maven-plugin:2.5:set -DnewVersion=1.6-SNAPSHOT -DprocessAllModules=true 
Các vấn đề liên quan