在局域网上托管本地maven存储库

时间:2013-06-25 10:47:55

标签: maven apache2 repository

我正在使用maven 3.0.5,我希望使用以下URL访问本地存储库 http://local.me/localrepo/

我运行的Apache Web服务器已经托管了一个svn,我可以使用http://local.me/projects访问svn项目

我在我的hosts文件中将local.me映射到127.0.0.1。

我想知道我是否也可以在线获取我的maven存储库。

请为此建议一些解决方案。

由于

2 个答案:

答案 0 :(得分:0)

不幸的是,只有一个apache Web服务器似乎不足以使您的存储库通过HTTP读/写。您需要其他软件,“存储库管理器”。这里有一个列表:http://maven.apache.org/repository-management.html

您可以通过SSH在本地网络上创建存储库。这是怎么做的。
(1)在你的pom的构建部分:

    <!-- Make SSH wagon available.-->
    <extensions>
        <extension>
            <groupId>org.apache.maven.wagon</groupId>
            <artifactId>wagon-ssh-external</artifactId>
        </extension>
    </extensions>

(2)在$ {USER_HOME} /。m2 / settings.xml中(或配置存储库URL的任何地方):

        <repositories>
            <repository>
                <id>my-repository</id>
                <url>scpexe://local.me/path/to/repository</url>
                <releases>
                    <enabled>true</enabled>
                    <updatePolicy>always</updatePolicy>
                    <checksumPolicy>fail</checksumPolicy>
                </releases>
                <snapshots>
                    <enabled>true</enabled>
                    <updatePolicy>always</updatePolicy>
                    <checksumPolicy>fail</checksumPolicy>
                </snapshots>
            </repository>
        </repositories>

(3)在$ {USER_HOME} /。m2 / settings.xml中,在servers部分,配置ssh客户端将使用的用户名/密钥:

    <server>
        <id>my-repository</id>
        <username>maven</username>
        <privateKey>/home/bob/.ssh/id_rsa</privateKey>
    </server>

这将在服务器上的path / path / to / repository中创建/使用一个存储库(看起来像你的本地存储库);没有必要在服务器端做任何其他事情,谢谢确保这个目录最初存在。

答案 1 :(得分:0)

可以设置任何Web服务器来提供Maven存储库。它实际上归结为简单地让Web服务器在本地文件系统上提供目录。裸Maven存储库没有涉及特殊逻辑。所有与Maven相关的元日期都存储在文件中。 Web服务器从Web服务器上的某个目录提供服务。

现在,棘手的部分是将内容上传到它。

免责声明:我还没有尝试过。但是..

根据documentation,可以使用file:/ url部署到maven存储库,并使Web服务器提供服务。还有another possible approach described here,它使用ftp将内容上传/部署到这样的Maven存储库。

但是,使用存储库管理器(例如Nexus或Archiva)可以更轻松地管理存储库。