Mvn cài đặt chính xác trong maven làm gì


165

Tôi mới bắt đầu sử dụng Maven và tôi được yêu cầu làm mvn installtrong một thư mục cụ thể.

mvn installChính xác thì làm gì?

Tôi nghĩ rằng nó tìm kiếm pom.xmltrong thư mục hiện tại và bắt đầu làm theo các hướng dẫn được chỉ định trong tập tin đó. Đúng không?


Câu trả lời:


124

Như bạn có thể biết, Maven là một công cụ tự động hóa xây dựng được cung cấp bởi Apache, không chỉ quản lý phụ thuộc. Chúng ta có thể làm cho nó như một đồng đẳng của Ant và Makefile để tải xuống tất cả các phụ thuộc cần thiết.

Trên một mvn install, nó đóng khung cây phụ thuộc dựa trên cấu hình dự án pom.xmltrên tất cả các dự án con trong siêu pom.xml(POM gốc) và tải xuống / biên dịch tất cả các thành phần cần thiết trong một thư mục được gọi .m2trong thư mục của người dùng. Các phụ thuộc này sẽ phải được giải quyết để dự án được xây dựng mà không có bất kỳ lỗi nào và mvn installlà một tiện ích có thể tải xuống hầu hết các phụ thuộc.

Hơn nữa, có những tiện ích khác trong Maven giống như dependency:resolvecó thể được sử dụng riêng trong mọi trường hợp cụ thể. Vòng đời xây dựng của mvn như sau: Ràng buộc vòng đời

  1. process-resources
  2. compile
  3. process-test-resources
  4. test-compile
  5. test
  6. package
  7. install
  8. deploy

Giai đoạn thử nghiệm của mvn này có thể được bỏ qua bằng cách sử dụng cờ -DskipTests=true.


9
Chỉ là một lưu ý phụ, nếu bạn muốn bỏ qua tất cả các mục tiêu liên quan đến thử nghiệm, hãy sử dụng: -Dmaven.test.skip = true (thay vì -DskipTests = true)
Manoj Shrestha

Câu trả lời này không làm rõ rằng lệnh cài đặt cuối cùng sẽ cài đặt tạo phẩm cục bộ, nghĩa là trong kho lưu trữ cục bộ.
PeriChandra

34

Bạn đã xem bất kỳ tài liệu Maven nào, ví dụ, tài liệu plugin cài đặt maven chưa?

Phiên bản Nutshell: nó sẽ xây dựng dự án và cài đặt nó trong kho lưu trữ cục bộ của bạn.


Giả sử bạn chạy "mvn install" trên thư viện nguồn mở. Sau đó, bạn chạy "mvn install" trên một dự án sử dụng thư viện nguồn mở mà chúng tôi đã biên dịch lần đầu tiên. Khi chạy "mvn install", các JAR đầu tiên có được tra cứu trong repo cục bộ không? Hoặc nó phụ thuộc vào tệp POM?
Kevin Meredith

1
@Kevin Nó nên đi địa phương đầu tiên, vì đó là loại điểm. Nếu nó không có trong kho lưu trữ cục bộ, nó sẽ tìm trong bất kỳ kho lưu trữ nào bạn đã cấu hình (hoặc mặc định) và cài đặt nó vào kho lưu trữ cục bộ của bạn nếu tìm thấy. Tôi nghi ngờ bạn có thể định cấu hình nó để luôn bỏ qua repo cục bộ, mặc dù tôi không biết làm thế nào mà không tìm kiếm nó.
Dave Newton

17
Đã bạn nhìn vào các tài liệu kinh điển cho Maven? Trang web của Apache giải thích mục đích cài đặt mvn, do đó: "Trong hầu hết các trường hợp, cài đặt: mục tiêu cài đặt không cần bất kỳ cấu hình nào, nó cần POM của dự án và tệp tạo tác được cài đặt trong giai đoạn cài đặt của vòng đời xây dựng mặc định." Đó là bởi vì tài liệu của Apache không giải thích được 'mvn install' thực sự mà mọi người thích poster, và bản thân tôi, đang tìm kiếm câu trả lời. Câu hỏi hoàn toàn hợp lý.
bethesdaboys


6

Các install:installmục tiêu được cung cấp bởi «Apache Maven Cài đặt Plugin»:

Plugin cài đặt Apache Maven

Plugin Cài đặt được sử dụng trong giai đoạn cài đặt để thêm (các) tạo phẩm vào kho lưu trữ cục bộ. Cài đặt Plugin sử dụng các thông tin trong POM ( groupId, artifactId, version) để xác định vị trí thích hợp cho các vật trong kho lưu trữ địa phương.

Kho lưu trữ cục bộ là bộ đệm cục bộ nơi lưu trữ tất cả các tạo phẩm cần thiết cho quá trình xây dựng. Theo mặc định, nó được đặt trong thư mục chính của người dùng ( ~/.m2/repository) nhưng vị trí có thể được cấu hình ~/.m2/settings.xmlbằng cách sử dụng <localRepository>phần tử.

- Plugin cài đặt Apache Maven - Giới thiệu .

Đã nói rằng, mục đích chính xác:

install:install được sử dụng để tự động cài đặt tạo phẩm chính của dự án (JAR, WAR hoặc EAR), POM của nó và bất kỳ tạo phẩm đính kèm nào (nguồn, javadoc, v.v.) được tạo bởi một dự án cụ thể.

- Plugin cài đặt Apache Maven - Giới thiệu .

Để biết thêm chi tiết về mục tiêu, vui lòng tham khảo Plugin Cài đặt Apache Maven - trang cài đặt: cài đặt .

Để biết thêm chi tiết về vòng đời xây dựng nói chung và nơi đặt mục tiêu trong vòng đời xây dựng, vui lòng tham khảo Maven - Giới thiệu về trang Vòng đời xây dựng .


3

Câu trả lời ngắn

cài đặt mvn

  • thêm tất cả các tạo phẩm (phụ thuộc) được chỉ định trong pom , vào kho lưu trữ cục bộ (từ các nguồn từ xa).

2

-DskipTests=true là dạng ngắn của -Dmaven.test.skip=true

Thực hiện thay đổi trong Setting.xml trong bạn .m2 thư mục. Bạn có thể sử dụng liên kết đến repo cục bộ để các lọ không được tải xuống một lần nữa không được tải xuống nhiều lần.

<url>file://C:/Users/admin/.m2/repository</url>
 </repository>

0

mvn cài đặt các công việc chính là 1) Tải xuống Phụ thuộc2) Xây dựng Dự án

trong khi công việc 1 ngày nay được chăm sóc bởi các ID như intellij (họ tải xuống cho bất kỳ sự phụ thuộc nào tại POM)

cài đặt mvn chủ yếu được sử dụng cho công việc 2 .

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.