メインコンテンツまでスキップ

Dependency Management

Cloud ZCPSonatype 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内での管理者権限が必要です。プロジェクトチームは通常、この目的のためにプラットフォーム管理者と調整する必要があります。