我正在使用 maven 3.0.5,我希望使用以下 url http://local.me/localrepo/访问本地存储库
我有一个 Apache Web 服务器正在运行,它已经托管了一个 svn,我可以使用http://local.me/projects访问 svn 项目
我在主机文件中将 local.me 映射到 127.0.0.1 的位置。
我想知道我是否也可以在线获取我的 Maven 存储库。
请提出一些相同的解决方案。
谢谢
我正在使用 maven 3.0.5,我希望使用以下 url http://local.me/localrepo/访问本地存储库
我有一个 Apache Web 服务器正在运行,它已经托管了一个 svn,我可以使用http://local.me/projects访问 svn 项目
我在主机文件中将 local.me 映射到 127.0.0.1 的位置。
我想知道我是否也可以在线获取我的 Maven 存储库。
请提出一些相同的解决方案。
谢谢
不幸的是,仅仅一个 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 创建/使用一个存储库(看起来像您的本地存储库);没有必要在服务器端做任何事情,谢谢确保这个目录最初存在。
可以设置任何 Web 服务器来为 Maven 存储库提供服务。真正归结为简单地让 Web 服务器在本地文件系统上提供一个目录。裸 Maven 存储库不涉及特殊逻辑。所有与 Maven 相关的元数据都存储在文件中。Web 服务器从 Web 服务器上的某个目录为它们提供服务。
现在,棘手的部分是将内容上传到它。
免责声明:我还没有尝试过自己。但 ..
根据文档,可以简单地使用file:/
url 部署到 maven 存储库,并让位置由 Web 服务器提供服务。这里还描述了另一种可能的方法,它使用 ftp 将内容上传/部署到这样的 Maven 存储库。
但是,使用存储库管理器(例如 Nexus 或 Archiva)可以更轻松地管理存储库。