Dependency Management
Cloud ZCP は Sonatype Nexus を統合リポジトリ管理ツールとして利用し、アプリケーションの依存関係を管理します。Nexus は、Java ライブラリ (JAR)、Node モジュール、その他のアーティファクトタイプなど、アプリケーションに必要なソフトウェアバイナリを管理する上で重要な役割を果たします。
その主な機能は次のとおりです:
- Proxying Public Repositories: Nexus は、Maven Central、npmjs.org などの公開リポジトリのローカルプロキシ (またはミラー) として機能できます。これにより、特に閉じたネットワーク内の開発およびビルド環境が、ダウンロードされたアーティファクトをキャッシュすることで、外部依存関係に信頼性高く効率的にアクセスできるようになります。
- Hosting Internal Libraries: Nexus は、組織が自社の内部ライブラリや共有コンポーネントをアップロードおよび管理できる
hosted
リポジトリを提供します 1 。 - Grouping Repositories: リポジトリをグループ化できるため、ビルドツールは複数のソースを横断して検索できます (例:最初に内部ライブラリのためにホストされたリポジトリを確認し、その後外部のためにプロキシリポジトリを確認します)。
Nexus へのアクセス
ZCP コンソールのプロジェクトメニューを通じて Nexus インターフェースにアクセスできます: Dev Tools > Nexus。
標準プロジェクトユーザーは通常、Nexus UI に直接ログインするためのアカウントを持っていません。リポジトリの表示は Browse メニューを通じて可能です。ホストされたリポジトリの作成やカスタムライブラリのアップロードなどの操作は、通常、プラットフォーム管理者の支援が必要です。
Nexus をブラウズすると、さまざまなリポジトリタイプに出会います:
- proxy: 外部の公開リポジトリをミラーします。ダウンロードされたアーティファクトをキャッシュします。
- hosted: 内部で開発またはアップロードされたアーティファクトを保存します。
- group: 複数のプロキシおよび/またはホストされたリポジトリを単一のアクセスポイントに統合します。ライブラリはグループ内で定義された順序で検索されます。
NexusをMavenミラーとして使用する
Mavenを使用するJavaプロジェクト、特に直接インターネットにアクセスできない環境では、Nexusをミラーリポジトリとして構成できます。
- Configuration File: Mavenの
settings.xml
ファイルを修正します(通常は~/.m2/settings.xml
またはMavenインストール内の/conf/settings.xml
にあります)。 - Mirror Settings:
<mirrors>
セクション内に<mirror>
エントリを追加します:
<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>モダナイゼーションプラットフォームNexus</name> <url>NEXUS_REPOSITORY_URL</url> <mirrorOf>*</mirrorOf> </mirror>
</mirrors>
...
</settings>
- Finding the URL: Nexus UIの(Browseセクション)で、目的のリポジトリを見つけます(通常は公開リポジトリのプロキシと内部ホストされたリポジトリを含む
group
タイプのリポジトリ)で、Copy URL
ボタンを使用して正しいNEXUS_REPOSITORY_URL
を取得します。 mirrorOf
Setting:*
を使用すると、MavenはallリポジトリリクエストをこのNexusミラーを通じてルーティングします。- あるいは、特定のリポジトリID(例:
central
)を指定して、pom.xml
で定義された特定のリポジトリのみをミラーすることもできます。
- IDE Integration: 開発環境(Eclipse、IntelliJ、VSCodeなど)がこの
settings.xml
ファイルを使用するように構成されていることを確認します。
NexusをGradleプロキシとして使用する
Gradleを使用するプロジェクトでは、プロジェクトのbuild.gradle
ファイル内でNexusアクセスを構成します。
- Configuration File: プロジェクトの
build.gradle
(またはbuild.gradle.kts
)ファイルを修正します。 - Repository Settings:
repositories { ... }
ブロックを調整します:
repositories {
// プロキシを強制する場合はmavenCentral()またはjcenter()のコメントを外すか削除します
// mavenCentral()
maven {
url "NEXUS_REPOSITORY_URL" // Nexus *group*リポジトリのURL
}
}
- Finding the URL: Mavenと同様に、Nexus UIで
Copy URL
ボタンを使用して適切なgroup
リポジトリのURLを見つけます。mavenCentral()
をNexusのmaven
ブロックに置き換えることで、GradleにNexusを通じて依存関係を解決させることができます。
カスタムライブラリの管理(ホステッドリポジトリ)
Nexusのhosted
リポジトリは、内部で開発されたライブラリや特定のバージョンのサードパーティライブラリなど、公開リポジトリに存在しないアーティファクトを保存するために設計されています。
ビルド(settings.xml
またはbuild.gradle
)で構成されたgroup
リポジトリにホステッドリポジトリが含まれている場合、ビルドツールはこれらの内部ライブラリにアクセスできます。
ホステッドリポジトリにアーティファクトをアップロードするには、通常、Nexus内での管理者権限が必要です。プロジェクトチームは通常、この目的のためにプラットフォーム管理者と調整する必要があります。