2

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

4

4 回答 4

3

标准的 maven 存储库实现几乎都是 Tomcat Web 应用程序。他们每个人都应该有一个静态存储库,就像您的本地存储库一样。webapp 用于搜索和管理存储在该静态存储库中的工件。

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

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

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

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

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

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

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

于 2013-04-14T17:33:33.953 回答
2

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

如果您的插件经过良好测试并有望为其他人带来好处,我建议您将其发布到 Maven Central。您可以将 CloudBee 的 BuildHive 用作免费的 Jenkins CI。

于 2013-04-14T18:04:54.450 回答
1

根据我的经验,静态存储库效果很好。

我将我的本地存储库 scp'd 到一个静态 apache 服务器中。合法的回购。当然不像真正的回购那么容易维护,但如果你已经有了一个普通的香草网络主机,它会便宜很多。

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

为了使它更合理,我做的唯一两件事是 1 - 在我本地 repo 的大部分内容上写了一个脚本来“rm -rf ....”,所以我唯一要部署的是那些少数的工件在一般回购中不可用。2 - 在连接到我的网络主机之前先把它涂上焦油。

希望这可以帮助。

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

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

于 2015-08-20T22:52:21.573 回答
0

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

我正在使用的命令是:

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

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

于 2013-04-25T14:45:58.113 回答