2013-05-27 27 views
5

Tôi mới làm quen với Maven. Tôi có một dự án mới và có cấu trúc như sau.maven - hai poms gốc khác nhau

Data_Res 
    | 
    ---res-search 
    |  | 
    |  -----res-hast 
    |  |  | 
    |  |  ------src/main.... 
    |  |  | 
    |  |  ------pom.xml 
    |  -----res-haster 
    |  |  | 
    |  |  ------src/main.... 
    |  |  | 
    |  |  ------pom.xml 
    |  | 
    |  ----pom.xml 
    | 
    | 
    ---pom.xml 
    ---sonar_pom.xml 

Tôi không thấy phần mô-đun trong pom.xml gốc. Nhưng tôi thấy phần mô-đun trong sonar_pom.xml. Nó không bao gồm tất cả các nút con. Có thể một thư mục/dự án có hai poms? Hoặc chúng ta có thể thực hiện chúng một cách riêng biệt?

  1. Làm cách nào để diễn giải điều này? Tiểu mô-đun hoặc dự án cá nhân? Có bất kỳ số liệu nào để tìm hiểu không?
  2. Tôi được yêu cầu chạy mvn clean install trên pom gốc. Tôi đã làm điều đó. Tôi đã được yêu cầu xác minh nếu tất cả các phụ thuộc cho một trong các thư mục con được cung cấp. Làm thế nào để kiểm tra những? Tôi có thể thấy một số tệp dưới thư mục .m2 trong thư mục chính của tôi.
  3. Tôi làm cách nào để tạo/đóng gói gói này? Tôi sẽ làm việc trên một trong các thư mục con. Không phải e nếu nó là một dự án riêng biệt hoặc mô-đun phụ. Trong trường hợp đó, tôi có thể trực tiếp đi đến thư mục đó và chạy mvn package/build từ thư mục đó (tệp pom.xml tồn tại) không?

Trả lời

9

Khi bạn thực hiện mục tiêu (e.g mvn install) maven sẽ kiểm tra pom.xml trên thư mục thực thi nếu pom.xml hiển thị nó sẽ thực hiện mục tiêu cho thư mục đó (ví dụ: dự án) nếu có bất kỳ mô-đun nào được đề cập giống nhau mục tiêu sẽ được thực hiện trên các mô-đun, hoạt động này là đệ quy.

Thư mục/dự án có thể có hai poms không?

Có bạn có thể có nhiều poms cho một dự án, nhưng mặc định là pom.xml nếu bạn muốn sử dụng tập tin pom thay thế bạn có thể sử dụng -f đề cập đến các tập tin pom thay thế trong trường hợp của bạn mvn -f sonar_pom.xml clean install, file probaly rằng pom được sử dụng cho sonar.

Làm cách nào để diễn giải điều này? Tiểu mô-đun hoặc dự án cá nhân? Có bất kỳ chỉ số nào để tìm hiểu không?

Mọi dự án đều có pom.xml có thể được xây dựng độc lập nếu phụ huynh và tất cả người phụ thuộc có mặt trong repo maven địa phương của bạn.

Tôi được yêu cầu chạy cài đặt sạch mvn trên root pom. Tôi đã làm điều đó. Tôi đã được yêu cầu xác minh xem tất cả các phụ thuộc cho một trong các thư mục con có được cung cấp hay không. Làm thế nào để kiểm tra những? Tôi có thể xem một số tệp trong thư mục .m2 trong thư mục chính của tôi.

Để xác minh việc kiểm tra phụ thuộc, địa chỉ gửi maven cục bộ của bạn mặc định là ~/.m2/repository, nhưng các cài đặt có thể được thay đổi trong settings.xml. Kiểm tra ~/.m2/settings.xml nếu tập tin không tồn tại, bạn có thể tìm thấy các thiết lập toàn cầu trong <maven_home>/conf/settings.xml sao chép nó vào ~/.m2/ sau đó nó có thể được ghi đè kiểm tra các thẻ sau <localRepository>/path/to/local/repo</localRepository>

Làm thế nào để xây dựng/gói này? Tôi sẽ làm việc trên một trong các thư mục con . Không phải e nếu nó là một dự án riêng biệt hoặc mô-đun phụ. Trong trường hợp đó, tôi có thể trực tiếp đi đến thư mục đó và chạy gói mvn/ xây dựng từ thư mục đó (tệp pom.xml tồn tại) không?

Như tôi đã đề cập trước đó, bạn có thể làm mvn package trên mô-đun của mình nếu bạn có cha mẹ và tất cả các phụ thuộc. Bạn có thể có được những kết hợp của hai cách

  1. Cài đặt những người trong hệ thống của bạn sử dụng mvn install hoặc
  2. sử dụng remote repositories
+0

Cảm ơn, @Karthikeyan. Nó giúp rất nhiều. 2 điều. 1.) Tôi không thấy .m2/settings.xml. 2.) Khi tôi gói từ tiểu mô-đun/dự án, thất bại của nó về phụ thuộc. Và khi tôi gói nó từ mô-đun phụ, nó sẽ tự động kéo tất cả các phụ thuộc từ phụ huynh? –

+0

@KevinRave Tôi đã cập nhật câu trả lời của mình về settings.xml. Đối với câu hỏi thứ 2 của bạn nếu các phụ thuộc không có trong [Central Repo] (http://repo1.maven.org/maven/), nó sẽ không tải xuống. Kiểm tra xem phụ thuộc nào không được tải xuống nếu nó không được bạn phát triển sau đó kiểm tra xem kho chứa chứa phần tạo tác đó và cấu hình nó trong settings.xml [Cài đặt Ref] (http://maven.apache.org/settings.html). –

+0

Tuyệt vời! Cảm ơn! Đây là những gì đã xảy ra. Tôi đã chạy mvn gói trên thư mục tôi đã nói với. Nó thiếu phụ thuộc vào thư mục khác. Vì vậy, tôi đã đi vào thư mục đó và chạy mvn cài đặt, và sau đó nó yêu cầu phụ thuộc thư mục khác, tôi đã đi vào đó và chạy mvn cài đặt, và như vậy như 4 thư mục. Tôi đã đi vào mỗi thư mục và chạy mvn cài đặt. Cuối cùng trở lại thư mục gốc và chạy mvn install. Nó đã làm việc. Vì vậy, tôi đoán là pom gốc không phải là làm công việc. Làm thế nào bạn có về điều này? Tôi có nên chạy sonar_pom.xml thay vì pom.xml như đã nói với tôi không? –

0

Chỉ cần để thêm vào câu trả lời đã đúng: trong nhật thực tôi đã phải tạo ra một "cấu hình chạy" mới trong cấu hình chạy "Maven Build". Tôi thiết lập các thư mục cơ sở các tiêu chuẩn

$ {project_loc: kết nối}

và "mục tiêu" để

pom_deploy.xml -f install -T 1C

Sau đó, tôi có thể nhấp chuột phải vào tệp tùy chỉnh pom_deploy.xml -> chạy dưới dạng ... -> chạy cấu hình -> Triển khai Maven tùy chỉnh

'-T 1C' là tùy chọn và yêu cầu Maven sử dụng nhiều bộ xử lý đồng thời cho quá trình xây dựng/biên dịch.

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