如何在没有Nexus的情况下托管Maven repo

问题描述:

我有一些GitHub上托管的小型开源项目,我希望通过Maven为其他人提供这些项目。我有一个小型网站,我可以托管静态文件。我如何创建回购?另外,如果可能的话,我想从那里删除旧的快照。如何在没有Nexus的情况下托管Maven repo

+0

你是什么意思“没有Nexus”?要[设置Maven回购](http://www.theserverside.com/news/1364121/Setting-Up-a-Maven-Repository)您必须拥有*存储库管理系统(标准,DMSP,Proximity,Artifactory ,Nexus)? – linski

+0

另外,一个*远程内部Maven仓库*(这是你想要设置,如果我正确理解)实现几乎所有的Tomcat应用程序。换句话说,只有静态Web访问才能托管Maven回购。 – linski

+0

是的,我的意思是一个静态存储库。虽然我有点困惑,为什么没有静态存储库软件,谢谢你的答案。 – Scott

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

我使用的命令是:

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

这将创建/自动更新本地资源库,因此回购可以与服务器同步。

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

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

如果maven没有尝试上传任何内容到回购库,直到deploy阶段,那么这种方法仍然部分可用,因为运行mvn clean deploy应该失败。

您可以检查是否是可行的这样的(我想你必须在你的本地回购项目):

  • 上传本地repoistory文件夹到一个URL
  • 测试镜的目的您的*回购该URL
  • 尝试从您的回购建立与依赖你的项目

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

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

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

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

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

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

我把我的本地资源库放到了一个静态的apache服务器上。合法回购。如果你已经有了一个普通的香草网络主机,那么当然不像维护真正的回购一样容易,但要便宜得多。

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

我为了使它更加合理而做的唯一两件事是 1 - 在本地回购的大部分内容上写了一个脚本为“rm -rf ....”,以便我部署的唯一内容是那些在通用回购中不可用的那些少量文物。 2 - 在搜索到我的虚拟主机之前首先关注它。

希望这会有所帮助。

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

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