59

我想创建本地 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>
    

但它没有解析 http://<my-domain>/localMavenRepository 上的 jars

是否需要提供存储库?

4

3 回答 3

59

使用具有默认配置的 Web 服务器设置一个简单的存储库。关键是目录结构。文档没有明确提到它,但它与本地存储库的结构相同。

要建立一个内部存储库,只需要您有一个放置它的地方,然后使用与远程存储库(如 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

如果您的域是example.com并且 Web 服务器的根目录位于/var/www/html/,则 maven 可以找到“YOUR_JAR.jar”(如果配置了 .jar)<url>http://example.com/mavenRepository</url>

于 2015-03-25T16:41:58.087 回答
7

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

    不要忘记授予 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>
    

    发布工件:

    <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 repo。

于 2018-11-05T16:15:27.643 回答
0

如果 maven 没有创建本地存储库,即 .m2/repository 文件夹,请尝试以下步骤。

在您的 Eclipse\Spring Tool Suite 中,转到 Window->preferences-> maven->user settings-> 单击 Restore Defaults-> Apply->Apply 并关闭

于 2018-06-29T05:46:14.807 回答