Chuyển tới nội dung chính

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út Copy URL để lấy NEXUS_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 trong pom.xml của bạn.
  • 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ặc build.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út Copy URL. Bằng cách thay thế mavenCentral() bằng khối maven 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.