2

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

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

我在主机文件中将 local.me 映射到 127.0.0.1 的位置。

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

请提出一些相同的解决方案。

谢谢

4

2 回答 2

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 的服务器部分,配置 ssh 客户端将使用的用户名/密钥:

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

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

于 2013-06-25T15:20:45.240 回答
0

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

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

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

根据文档,可以简单地使用file:/url 部署到 maven 存储库,并让位置由 Web 服务器提供服务。这里还描述了另一种可能的方法,它使用 ftp 将内容上传/部署到这样的 Maven 存储库。

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

于 2014-02-03T09:21:20.477 回答