创建本地maven存储库

pbh*_*hle 53 maven-2 maven mvn-repo

我想创建本地maven存储库.我做了以下步骤:

  1. 在eclipse中安装了maven插件
  2. 在apache服务器中创建了一个文件夹localrepository,可以使用http:// <my-domain>/localrepository访问
  3. 在我提供的项目pom.xml中

    <repositories>
        <repository>
            <id>repository</id>
            <url>http://<my-domain>/localMavenRepository</url>
        </repository>
    </repositories>
    
    Run Code Online (Sandbox Code Playgroud)

但它不能解析http:// <my-domain>/localMavenRepository上的jar

有没有必要提供存储库?

yan*_*kee 50

我必须反对斯坦利,它应该这样工作.虽然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
Run Code Online (Sandbox Code Playgroud)

假设您的Apache上的example.com的文档根目录/var/www/html/会导致"YOUR_JAR.jar"在配置了<url>http://example.com/mavenRepository</url>


Sta*_*ley 33

您不能以这种方式创建私有存储库.看看这篇文章:http://www.theserverside.com/news/1364121/Setting-Up-a-Maven-Repository.

我正在使用Artifactory Open Source版本.

  • OP正在寻求一种创建本地存储库而不是私有远程存储库的方法。 (4认同)

lmi*_*lmh 5

是的你可以!对于仅发布/检索工件的简单存储库,您可以使用 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;
    }
    
    Run Code Online (Sandbox Code Playgroud)

    在 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;
    }
    
    Run Code Online (Sandbox Code Playgroud)

    不要忘记授予 repo 所在目录的权限:

    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>
    
    Run Code Online (Sandbox Code Playgroud)

    发布工件:

    <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>
    
    Run Code Online (Sandbox Code Playgroud)
  4. 要发布工件,请使用mvn deploy. 要检索工件,maven 会自动完成。

你有一个简单的maven repo。