2012-01-09 38 views
3

mavenがローカルのNexusリポジトリからアーティファクトをダウンロードできるように、maven環境でmexusを設定しようとしています。 MavenとNexusがインストールされているマシンは、セキュリティ上の理由からインターネットに接続できません。オフラインでインターネットに接続していない状態でMavenとSonatype Nexusを実行しています

インターネット接続が可能なワークステーションにも同様の設定があります。両方のマシンにMavenとNexusをインストールしました。以下に示すように、私も〜2/settings.xml内の私の地元のMavenの設定ファイルを更新:

<?xml version="1.0" encoding="UTF-8"?> 
<settings xmlns="http://maven.apache.org/POM/4.0.0" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd"> 
    <mirrors> 
    <mirror> 
     <id>nexus</id> 
     <mirrorOf>*</mirrorOf> 
     <url>http://localhost:8081/nexus/content/groups/public</url> 
    </mirror> 
    </mirrors> 
    <proxies></proxies> 
    <servers></servers> 
    <pluginGroups></pluginGroups> 
    <profiles> 
    <profile> 
     <id>nexus</id> 
     <!--Enable snapshots for the built in central repo to direct --> 
     <!--all requests to nexus via the mirror --> 
     <repositories> 
     <repository> 
      <id>central</id> 
      <url>http://central</url> 
      <releases><enabled>true</enabled></releases> 
      <snapshots><enabled>true</enabled></snapshots> 
     </repository> 
     </repositories> 
     <pluginRepositories> 
     <pluginRepository> 
      <id>central</id> 
      <url>http://central</url> 
      <releases><enabled>true</enabled></releases> 
      <snapshots><enabled>true</enabled></snapshots> 
     </pluginRepository> 
     </pluginRepositories> 
    </profile> 
    </profiles> 
    <activeProfiles> 
    <activeProfile>nexus</activeProfile> 
    </activeProfiles> 
</settings> 

私はシンプルな安全なサーバー上で「MVNのインストール」を実行するために実行していると、それは行方不明の依存性について訴えました。これは、リポジトリにアーティファクトをダウンロードしてアップロードしていないために必要です。

私のローカルワークステーションを使用してアーティファクトをダウンロードし、圧縮して、安全なマシンのNexusリポジトリにアップロードします。ローカルワークステーションにmvn installを実行して、すべてがダウンロードされました。今私は、ローカルワークステーション上のリポジトリを安全なサーバーにコピーする必要があります。

Nexusのドキュメントによれば、フォルダ$HOME/sonatype-workは「保存場所」です。

  • このフォルダは、リポジトリをコピーするために安全なサーバーにコピーする必要がある唯一のフォルダですか?
  • 私は心配する必要がある他のファイルはありますか?例えば設定ファイル?
  • デフォルトでは、Nexusはリモートリポジトリを無効にしています。これは、私がそれを残しておくと、セントラルリポジトリから何かをダウンロードするのを防ぐために何かをする必要はないということですか?

ありがとうございます。

答えて

3

ローカルリポジトリの内容をNexusサーバのストレージエリアにアップロードすることができます。リポジトリのメタデータ(Nexus GUIから呼び出すことができるタスク)を再インデックスするか再生成する必要があるかもしれません。

しかし、最終的に保守が少なくなる代替ソリューションを検討することをお勧めします。

Nexusのプロフェッショナルエディションは、コンテンツがルールまたは参照ビルドに基づいて制御されるリポジトリを作成できるようにするprocurement suite機能を備えています。

Nexusだけがインターネットにアクセスできるようにファイアウォールを開きます。任意のサードパーティのNexusリポジトリへの開発管理アクセスを提供できます。

+0

ハイマーク、ファイアウォールを有効にするオプションは、プロジェクトの安全性のため実際には不可能です。ありがとう。 – ziggy

+0

次の質問は関連しています:http://stackoverflow.com/questions/4997219/disable-maven-central-repository/4997553#4997553 –

関連する問題