如何在没有Nexus的情况下托管maven仓库

时间:2013-04-14 16:12:17

标签: maven maven-3

我在Github上托管了一些小型开源项目,我希望通过Maven为其他人提供这些项目。我有一个小网站空间,我可以托管静态文件。我怎样才能创建回购?另外,如果可能的话,我想从那里删除旧快照。

4 个答案:

答案 0 :(得分:3)

Standard maven repository实现几乎都是Tomcat Web应用程序。每个人都应该有一个静态存储库,就像你的local repository一样。 webapp用于搜索和管理存储在该静态存储库中的工件。

如果您只想使用静态Web访问来托管存储库,则必须手动执行管理并提供静态手动生成的html页面,其中包含repo中所有工件的GAV coordinates。除非您提供密码或启用匿名FTP访问,否则没有其他用户可以上传到存储库。

如果maven在deploy阶段之前没有尝试将任何内容上传到repo,那么这种方法仍然可以部分使用,因为运行mvn clean deploy会失败。

您可以检查这是否可行(我想您在本地仓库中有这些项目):

  • 将您的本地repoistory文件夹上传到网址
  • 用于测试镜像您的中央仓库到该URL
  • 尝试使用repo中的依赖项构建项目

打开settings.xml文件并在<mirrors>节点添加:

<mirror>
  <url>http://your/url/repo</url>
  <mirrorOf>*</mirrorOf>
</mirror>

并查看mvn clean install是否成功。请反馈。

答案 1 :(得分:2)

在这个SO answer中,我概述了我设置我的OSS项目的方式,这些项目都在Github中托管。实际上,当您想要运行OSS项目时,可以使用许多免费服务。

我建议发布到Maven Central,如果您的插件经过充分测试并且预计也会带来其他人的好处。您可以将CloudBee的BuildHive用作免费的Jenkins CI。

答案 2 :(得分:1)

根据我的经验,静态回购非常有用。

我将我的本地存储库写入静态Apache服务器。合法回购。当然不像真正的回购那样容易维护,但如果你已经拥有一个简单的香草网络主机那么便宜了。

除了正确设置权限(与浏览文件夹所需的权限相同)之外,这是一个非常轻松的过程。

我做的唯一两件事就是让它变得更合理 1 - 写了一个脚本给&#34; rm -rf ....&#34;在我的本地仓库的大多数内容上,所以我唯一要部署的是那些在一般仓库中没有的工件。 2 - 在搜索我的网络主机之前首先将其打开。

希望这有帮助。

下面的那个人做了类似的事情,只使用FTP,如果他经常更新他的二进制文件,可以为他节省大量的工作。

http://stuartsierra.com/2009/09/08/run-your-own-maven-repository

答案 3 :(得分:0)

我想我现在知道怎么做了。我现在正在使用mvn deploy在文件系统上创建本地存储库,然后将其上传到网络服务器。如果我没错,甚至不需要成为文件列表。

我正在使用的命令是:

mvn deploy -DaltDeploymentRepository=local::default::file:./repo

这会自动创建/更新本地存储库,因此可以将repo与服务器同步。