创建本地maven存储库

时间:2012-12-12 06:35:27

标签: maven maven-2 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>
    
  4. 但它没有解决http://&lt;上的罐子。我的域&GT; / localMavenRepository

    是否需要提供存储库?

5 个答案:

答案 0 :(得分:48)

我必须反对斯坦利,它应该这样工作。虽然Stanley链接引导了更强大的设置,但如果您只需要一个非常基本的简单存储库,那么只有具有默认配置的Apache可以提供存储库。

  

要设置内部存储库,只需要有一个放置它的位置,然后使用与远程存储库(如repo.maven.apache.org)中相同的布局开始复制所需的工件。 Source

关键是你需要正确的文件夹结构,虽然文档没有明确提及它......它与本地存储库的结构相同。

将文件添加到您的存储库,如下所示:

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/,这将导致&#34; YOUR_JAR.jar&#34;在配置有<url>http://example.com/mavenRepository</url>

的存储库上可用于maven

答案 1 :(得分:32)

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

我正在使用Artifactory Open Source版本。

答案 2 :(得分:1)

另一种方法是将您的jar包含在本地 maven存储库中。

有关简单示例,请参阅here

答案 3 :(得分:0)

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

在您的Eclipse \ Spring工具套件中,转到窗口->首选项-> maven->用户设置->单击恢复默认值->应用->应用并关闭

答案 4 :(得分:0)

可以!对于仅发布/检索工件的简单存储库,可以使用nginx。

  1. 确保nginx has http dav module enabled应该,但仍然要对其进行验证。

  2. Configure nginx http dav module

    在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存储库。