Dependency Management
Cloud ZCP sử dụng Sonatype Nexus như một công cụ quản lý kho tích hợp để xử lý các phụ thuộc ứng dụng. Nexus đóng vai trò quan trọng trong việc quản lý các nhị phân phần mềm cần thiết cho các ứng dụng, chẳng hạn như thư viện Java (JARs), mô-đun Node và có thể là các loại đối tượng khác.
Các chức năng chính của nó bao gồm:
- Proxying Public Repositories: Nexus có thể hoạt động như một proxy cục bộ (hoặc gương) cho các kho công cộng như Maven Central, npmjs.org, v.v. Điều này cho phép các môi trường phát triển và xây dựng, đặc biệt là những môi trường trong mạng kín, truy cập các phụ thuộc bên ngoài một cách đáng tin cậy và hiệu quả bằng cách lưu trữ các đối tượng đã tải xuống.
- Hosting Internal Libraries: Nexus cung cấp các kho
hosted
nơi các tổ chức có thể tải lên và quản lý các thư viện nội bộ hoặc các thành phần chia sẻ của riêng họ 1 . - Grouping Repositories: Các kho có thể được nhóm lại với nhau, cho phép các công cụ xây dựng tìm kiếm qua nhiều nguồn khác nhau (ví dụ: trước tiên kiểm tra một kho hosted cho các thư viện nội bộ, sau đó kiểm tra một kho proxy cho các thư viện bên ngoài).
Truy cập Nexus
Bạn có thể truy cập giao diện Nexus thông qua menu dự án trong bảng điều khiển ZCP: Dev Tools > Nexus.
Người dùng dự án tiêu chuẩn thường không có tài khoản để đăng nhập trực tiếp vào giao diện người dùng Nexus. Việc xem các kho là có thể thông qua menu Browse. Các hoạt động như tạo các kho hosted hoặc tải lên các thư viện tùy chỉnh thường yêu cầu sự trợ giúp từ quản trị viên nền tảng.
Khi duyệt Nexus, bạn sẽ gặp các loại kho khác nhau:
- proxy: Gương một kho công cộng bên ngoài. Lưu trữ các đối tượng đã tải xuống.
- hosted: Lưu trữ các đối tượng đã phát triển hoặc tải lên nội bộ.
- group: Kết hợp nhiều kho lưu trữ proxy và/hoặc kho lưu trữ được lưu trữ thành một điểm truy cập duy nhất. Các thư viện được tìm kiếm theo thứ tự đã định trong nhóm.
Sử dụng Nexus như một gương Maven
Đối với các dự án Java sử dụng Maven, đặc biệt trong các môi trường không có truy cập internet trực tiếp, Nexus có thể được cấu hình như một kho lưu trữ gương.
- Configuration File: Chỉnh sửa tệp
settings.xml
của Maven (thường nằm trong~/.m2/settings.xml
hoặc/conf/settings.xml
trong cài đặt Maven). - Mirror Settings: Thêm một mục
<mirror>
trong phần<mirrors>
:
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 https://maven.apache.org/xsd/settings-1.0.0.xsd">
...
<mirrors>
<mirror>
<id>modernizationplatform</id> <name>Modernization Platform Nexus</name> <url>NEXUS_REPOSITORY_URL</url> <mirrorOf>*</mirrorOf> </mirror>
</mirrors>
...
</settings>
- Finding the URL: Trong giao diện người dùng Nexus (Browse phần), tìm kho lưu trữ mong muốn (thường là kho lưu trữ loại
group
bao gồm các proxy cho các kho công cộng và có thể là các kho lưu trữ nội bộ) và sử dụng nútCopy URL
để lấyNEXUS_REPOSITORY_URL
chính xác. mirrorOf
Setting:- Sử dụng
*
sẽ khiến Maven chuyển hướng các yêu cầu kho lưu trữ all thông qua gương Nexus này. - Ngoài ra, bạn có thể chỉ định các ID kho lưu trữ cụ thể (ví dụ:
central
) nếu bạn chỉ muốn gương một số kho lưu trữ nhất định được định nghĩa trongpom.xml
của bạn.
- Sử dụng
- IDE Integration: Đảm bảo môi trường phát triển của bạn (Eclipse, IntelliJ, VSCode, v.v.) được cấu hình để sử dụng tệp
settings.xml
này.
Sử dụng Nexus như một proxy Gradle
Đối với các dự án sử dụng Gradle, bạn cấu hình quyền truy cập Nexus trong tệp build.gradle
của dự án.
- Configuration File: Chỉnh sửa tệp
build.gradle
(hoặcbuild.gradle.kts
) cho dự án của bạn. - Repository Settings: Điều chỉnh khối
repositories { ... }
:
repositories {
// Bình luận hoặc xóa mavenCentral() hoặc jcenter() nếu bạn muốn buộc proxy
// mavenCentral()
maven {
url "NEXUS_REPOSITORY_URL" // URL của kho lưu trữ *group* Nexus
}
}
- Finding the URL: Giống như Maven, tìm URL kho lưu trữ
group
thích hợp trong giao diện Nexus bằng cách sử dụng nútCopy URL
. Bằng cách thay thếmavenCentral()
bằng khốimaven
của Nexus, bạn chỉ định Gradle giải quyết các phụ thuộc thông qua Nexus.
Quản lý Thư viện Tùy chỉnh (Kho lưu trữ Được lưu trữ)
Các kho lưu trữ hosted
trong Nexus được thiết kế để lưu trữ các đối tượng không có sẵn trong các kho lưu trữ công cộng, chẳng hạn như các thư viện phát triển nội bộ hoặc các phiên bản cụ thể của các thư viện bên thứ ba.
Các công cụ xây dựng có thể truy cập các thư viện nội bộ này khi kho lưu trữ được lưu trữ được bao gồm trong một kho lưu trữ group
được cấu hình trong quá trình xây dựng (settings.xml
hoặc build.gradle
).
Việc tải lên các đối tượng đến các kho lưu trữ được lưu trữ thường yêu cầu quyền quản trị trong Nexus. Các nhóm dự án thường cần phối hợp với các quản trị viên nền tảng cho mục đích này.