cuốn sách gpt4 ai đã làm

[Hướng dẫn giới thiệu cơ bản về Maven] Maven nhập các gói jar cục bộ

In lại Tác giả: Q123 Thời gian cập nhật: 2024-01-04 22:47:24 30 4
mua khóa gpt4 Nike

Chúng tôi biết rằng Maven quản lý các phần phụ thuộc thông qua các kho. Khi một dự án Maven yêu cầu một phần phụ thuộc, miễn là thông tin tọa độ của phần phụ thuộc được khai báo trong POM của nó, Maven sẽ tự động tải xuống thành phần từ kho để sử dụng. Tuy nhiên, trong quá trình phát triển thực tế, chúng ta thường gặp phải một tình huống: một dự án nhất định cần phụ thuộc vào một gói jar nhất định được lưu trữ cục bộ. Không thể tải xuống gói jar từ bất kỳ kho nào. Sự phụ thuộc này được gọi là phụ thuộc bên ngoài hoặc phụ thuộc cục bộ. Vậy sự phụ thuộc này được khai báo như thế nào?

Dưới đây chúng tôi sử dụng một ví dụ để giới thiệu cách nhập các gói jar cục bộ.

1. Mở cửa sổ dòng lệnh, chuyển đến thư mục D:\maven và thực hiện lệnh mvn sau để tạo một dự án có tên thứ haiMaven.

mvn archetype:generate -DgroupId=net.bianchen.www -DartifactId=secondMaven -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

2. Cập nhật mã của lớp Ứng dụng trong SecondMaven như sau.
gói net.bianThành.www; nhập net.bianThành.www.Util;; lớp công khai Ứng dụng { public static void main(String[] args) { Util.printMessage("secondMaven");

Như có thể thấy từ đoạn mã trên, lớp Ứng dụng trong SecondMaven cần sử dụng lớp Util duy nhất trong helloMaven, nghĩa là, SecondMaven cần phụ thuộc vào helloMaven.

3. Chuyển đến thư mục chứa helloMaven và thực hiện lệnh mvn sau để đóng gói dự án vào một tệp jar.
gói sạch mvn

Kết quả thực hiện lệnh như sau.
[THÔNG TIN] Đang quét tìm dự án... [THÔNG TIN] [THÔNG TIN] ------------------< net.bianchen.www:helloMaven >------ -- ------------ [THÔNG TIN] Xây dựng helloMaven 1.0-SNAPSHOT [THÔNG TIN] ------------------------- -- -----[ jar ] ---------------------------------- [THÔNG TIN] [THÔNG TIN] - -- maven-clean-plugin:2.5:clean (mặc định-sạch) @ helloMaven --- [THÔNG TIN] Đang xóa d:\maven\helloMaven\target [INFO] [INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ helloMaven --- [CẢNH BÁO] Sử dụng mã hóa nền tảng (thực tế là GBK) để sao chép tài nguyên đã lọc , tức là bản dựng phụ thuộc vào nền tảng! [INFO] bỏ qua ResourceDirectory không tồn tại d:\maven\helloMaven\src\main\resources [INFO] [INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ helloMaven --- [THÔNG TIN] Đã phát hiện các thay đổi - đang biên dịch lại mô-đun! [CẢNH BÁO] Mã hóa tệp chưa được đặt, sử dụng mã hóa nền tảng GBK, tức là bản dựng đang được cài đặt phụ thuộc vào nền tảng! [INFO] Biên dịch 2 tệp nguồn thành d:\maven\helloMaven\target\classes [INFO] [INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ helloMaven --- [CẢNH BÁO] Sử dụng mã hóa nền tảng (GBK thực tế) để sao chép các tài nguyên đã lọc, tức là bản dựng phụ thuộc vào nền tảng [INFO] bỏ qua ResourceDirectory không tồn tại d:\ maven\helloMaven\src\test\resource [THÔNG TIN] [THÔNG TIN] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ helloMaven --- [THÔNG TIN] Đã phát hiện các thay đổi - biên dịch lại mô-đun! [CẢNH BÁO] Mã hóa tệp chưa được đặt, sử dụng mã hóa nền tảng GBK, tức là bản dựng phụ thuộc vào nền tảng [THÔNG TIN] Biên dịch 1 tệp nguồn thành d :\maven\helloMaven\target\test-classes [THÔNG TIN] [THÔNG TIN] --- maven-surefire-plugin:2.12.4:test (kiểm tra mặc định) @ helloMaven --- [THÔNG TIN] Thư mục báo cáo Surefire: d:\maven\helloMaven\target\surefire-reports ----------------------------- ---------------------------- KIỂM TRA --------------------- ------- ---------------------------------- Chạy thử nghiệm net.bian Cheng.www.AppTest chạy: 1, Thất bại: 0 , Lỗi: 0, Bỏ qua: 0, Thời gian trôi qua: 0,016 giây Kết quả: Chạy thử nghiệm: 1, Thất bại: 0, Lỗi: 0, Đã bỏ qua: 0 [INFO] [INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ helloMaven --- [INFO] Xây dựng jar: d:\maven\helloMaven\target\helloMaven- 1.0-SNAPSHOT.jar [THÔNG TIN] ------------------------------------------ ------ ------------------------------- [THÔNG TIN] XÂY DỰNG THÀNH CÔNG [THÔNG TIN] ----- ----- --------------------------------------------- ----- ---------- [THÔNG TIN] Tổng thời gian: 1.940 s [INFO] Đã hoàn thành lúc: 2021-03-03T13:27:34+08:00 [INFO] -------------------------- --------------------------------------------------

4. Sau khi lệnh được thực thi, hãy nhập thư mục D:\maven\helloMaven\target. Bạn có thể thấy rằng Maven đã đóng gói dự án helloMaven vào helloMaven-1.0-SNAPSHOT.jar.

Kết quả đóng gói phụ thuộc bên ngoài
Hình 1: Kết quả đóng gói helloMaven

5. Sửa đổi cấu hình của pom.xml trong SecondMaven như sau.
 4.0.0 net.bianchen.www secondMaven jar 1.0-SNAPSHOT secondMaven http://maven.apache.org   junit junit 3.8.1 test    net.bianchen.www  helloMaven  hệ thống 1.0-SNAPSHOT  D:\maven\helloMaven\target\helloMaven-1.0-SNAPSHOT.jar   

Trong cấu hình trên, ngoài thông tin tọa độ phụ thuộc, phần phụ thuộc bên ngoài còn sử dụng hai thành phần: phạm vi và đường dẫn hệ thống.
  • Phạm vi thể hiện phạm vi phụ thuộc và giá trị ở đây phải là hệ thống, tức là hệ thống.
  • systemPath đại diện cho vị trí của các thành phần cục bộ phụ thuộc.

6. Mở cửa sổ dòng lệnh, chuyển đến thư mục chứa thứ haiMaven và thực hiện lệnh mvn sau để biên dịch.
biên dịch sạch mvn

Kết quả thực hiện lệnh như sau.
[CẢNH BÁO] [CẢNH BÁO] Một số vấn đề đã gặp phải khi xây dựng mô hình hiệu quả cho net.bian Cheng.www:secondMaven:jar:1.0-SNAPSHOT [CẢNH BÁO] 'dependency.dependency.systemPath' cho net.bianchen.www:helloMaven:jar nên sử dụng một biến thay vì đường dẫn được mã hóa cứng D:\maven\helloMaven\target\helloMaven-1.0-SNAPSHOT.jar @ dòng 23, cột 16 [CẢNH BÁO] [CẢNH BÁO] Bạn nên khắc phục những sự cố này vì chúng đe dọa tính ổn định của bản dựng của bạn. [CẢNH BÁO] [CẢNH BÁO] Vì lý do này, các phiên bản Maven trong tương lai có thể không còn hỗ trợ xây dựng các dự án không đúng định dạng như vậy. THÔNG TIN] [THÔNG TIN] ------------------< net.bianchen.www:secondMaven >----------------- - -- [THÔNG TIN] Xây dựng thứ haiMaven 1.0-SNAPSHOT [THÔNG TIN] --------------------------------[ jar ]- - ------------------------------- [INFO] [INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ twoMaven --- [INFO] Đang xóa d:\maven\secondMaven\target [INFO] [INFO] --- maven -resources-plugin:2.6:resources (default-resources) @ thứ haiMaven --- [CẢNH BÁO] Sử dụng mã hóa nền tảng (thực tế là GBK) để sao chép tài nguyên đã lọc, tức là bản dựng là nền tảng phụ thuộc! [INFO] bỏ qua tài nguyên không tồn tạiDirectory d:\maven\secondMaven\src\main\resources [INFO] [INFO] --- maven-compiler-plugin:3.1:compile (biên dịch mặc định) @ thứ haiMaven --- [ THÔNG TIN] Đã phát hiện các thay đổi - biên dịch lại mô-đun! [CẢNH BÁO] Mã hóa tệp chưa được đặt, sử dụng mã hóa nền tảng GBK, tức là bản dựng phụ thuộc vào nền tảng [THÔNG TIN] Biên dịch 1 nguồn! tập tin vào d:\maven\secondMaven\target\classes [THÔNG TIN] ---------------------------------- - ------------------------------------ [THÔNG TIN] XÂY DỰNG THÀNH CÔNG [THÔNG TIN] ----- - -------------------------------------------------- - ----------------- [INFO] Tổng thời gian: 1.030 s [INFO] Kết thúc lúc: 2021-03-03T14:05:00+08:00 [INFO] --- -------------------------------------------------- -------------------

7. Sau khi biên dịch hoàn tất, hãy thực hiện lệnh sau để đặt các biến môi trường tạm thời.
đặt classpath=%classpath%;D:\maven\helloMaven\target\helloMaven-1.0-SNAPSHOT.jar

8. Thực hiện lệnh Java sau.
java net.bianthành.www.App

9. Kết quả như hình dưới đây.

Hình 2: Kết quả thực hiện

30 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress