web-dev-qa-db-ja.com

ローカルMavenリポジトリを作成する

ローカルのMavenリポジトリを作成したい。次の手順を実行しました。

  1. Eclipseにインストールされたmavenプラグイン
  2. Http:// <my-domain>/localrepositoryを使用してアクセス可能なApacheサーバーにlocalrepositoryフォルダーを1つ作成しました
  3. 私のプロジェクトpom.xmlで私が提供しました

    <repositories>
        <repository>
            <id>repository</id>
            <url>http://<my-domain>/localMavenRepository</url>
        </repository>
    </repositories>
    

しかし、http:// <my-domain>/localMavenRepositoryにあるjarを解決していません

リポジトリを提供する必要はありますか?

51
pbhle

そのようにしてプライベートリポジトリを作成することはできません。この記事をご覧ください: http://www.theserverside.com/news/1364121/Setting-Up-a-Maven-Repository

Artifactory Open Source versionを使用しています。

34
Stanley

私はスタンレーに反対しなければなりません、それはこのように働くはずです。スタンリーリンクの記事はより強力なセットアップにつながりますが、非常に基本的なシンプルなリポジトリだけが必要な場合は、デフォルト構成のApacheだけでリポジトリを提供できます。

内部リポジトリを設定するには、リポジトリを配置する場所が必要です。repo.maven.Apache.orgなどのリモートリポジトリと同じレイアウトを使用して、そこに必要なアーティファクトのコピーを開始するだけです。 ソース

重要なのは、正しいフォルダー構造が必要であり、ドキュメントでは明示的に言及されていないことです...これは、ローカルリポジトリと同じ構造です。

次のようにファイルをリポジトリに追加します。

mvn install:install-file -Dfile=YOUR_JAR.jar -DgroupId=YOUR_GROUP_ID -DartifactId=YOUR_ARTIFACT_ID -Dversion=YOUR_VERSION -Dpackaging=jar -DlocalRepositoryPath=/var/www/html/mavenRepository

Apacheのexample.comのドキュメントルートが/var/www/html/であると仮定すると、<url>http://example.com/mavenRepository</url>で構成されたリポジトリ上のmavenで "YOUR_JAR.jar"が使用可能になります。

49
yankee

はい、できます!アーティファクトのみを公開/取得するシンプルなリポジトリの場合、nginxを使用できます。

  1. nginxでhttp davモジュールが有効になっている であることを確認してください。ただし、確認する必要があります。

  2. nginx http davモジュールの設定

    Windowsの場合:d:\ servers\nginx\nginx.conf

    location / {
        # maven repository
        dav_methods  PUT DELETE MKCOL COPY MOVE;
        create_full_put_path  on;
        dav_access  user:rw group:rw all:r;
    }
    

    Linux(Ubuntu)の場合:/ etc/nginx/sites-available/default

    location / {
            # First attempt to serve request as file, then
            # as directory, then fall back to displaying a 404.
            # try_files $uri $uri/ =404;  # IMPORTANT comment this
            dav_methods  PUT DELETE MKCOL COPY MOVE;
            create_full_put_path  on;
            dav_access  user:rw group:rw all:r;
    }
    

    リポジトリが配置されるディレクトリにアクセス許可を与えることを忘れないでください:

    Sudo chmod +777 /var/www/html/repository

  3. プロジェクトのpom.xmlにそれぞれの構成を追加します。

    アーティファクトの取得:

    <repositories>
        <repository>
            <id>repository</id>
            <url>http://<your.ip.or.hostname>/repository</url>
        </repository>
    </repositories>
    

    成果物の公開:

    <build>
        <extensions>
            <extension>
                <groupId>org.Apache.maven.wagon</groupId>
                <artifactId>wagon-http</artifactId>
                <version>3.2.0</version>
            </extension>
        </extensions>
    </build>
    <distributionManagement>
        <repository>
            <id>repository</id>
            <url>http://<your.ip.or.hostname>/repository</url>
        </repository>
    </distributionManagement>
    
  4. 成果物を公開するには、mvn deployを使用します。アーティファクトを取得するには、mavenが自動的に行います。

そして、そこには単純なMavenリポジトリがあります。

1
lmiguelmh

別の方法は、jarをlocalmavenリポジトリに含めることです。

簡単な例については、 here をご覧ください。

1
Zouzias

MavenがLocal Repositoryを作成していない場合、つまり.m2/repositoryフォルダーの場合、以下の手順を試してください。

Eclipse\Spring Tool Suiteで、Window-> preferences-> maven-> user settings-> Restore Defaults-> Apply-> Applyを選択して、閉じる

0
LOKESH S