2

我想在我的项目中使用一个 Java 库。我的项目使用 Maven 来引入依赖项,它适用于除这个库之外的所有内容。问题是,这个库从来没有发布过。作者在 Subversion 存储库中维护源代码,仅在主干中进行更改。

有没有办法告诉 Maven

  1. 从 Subversion 更新(或签出)库的源代码树
  2. 根据它的 POM 构建它
  3. 使用生成的 jar 作为此项目的依赖项
  4. 定期执行此操作(可能在每次构建时)
  5. 对于奖励积分,标记我要使用的那个库的哪个 Subversion 版本

谢谢!

4

5 回答 5

0

以下不是更简单但更有效的解决方案:

  • 您编写一个 shell 脚本/bat 文件来检查源代码、构建工件并部署到您控制下的 maven 存储库。
  • 使用快照依赖项,您将在工件中获得时间戳,确保项目的每个构建都使用工件的最新版本,并且您根本不需要更新项目的 pom.xml。
  • 您可以在项目的 pom.xml 中使用一个 ant 任务,该任务将挂钩到项目构建周期并执行构建和部署工件的 shell 脚本。
于 2010-04-11T06:11:12.697 回答
0

做开源的事情:

您可以联系图书馆的作者。我敢打赌,他很高兴得到一些反馈。让他知道你需要什么,他可能会做。或者提供帮助 mavenizing 库或帮助发布。这样其他用户也可以获利。

作为一些开源项目的开发者,我喜欢这种反馈。

于 2010-04-11T06:26:09.160 回答
0

如果你不控制某事,你就无法……控制它。所以我会:

  • 从项目 repo 中签出源代码
  • 将它们置于您的 vcs 中的版本控制之下
  • 构建一个版本(并在你的 vcs 中标记库)
  • 通过公司存储库分发已发布的工件

你真的不想让这更多的自动化(如果作者提交了一些破坏你的代码的东西,如果你需要修复你的代码的已发布版本中的错误但不能使用完全相同的库怎么办)。将其置于源代码控制之下并自行管理发布。

于 2010-04-11T12:36:17.123 回答
0

您可以尝试使用 Hudson(一种持续集成解决方案)及其Subversion 插件来定期检查源代码。

在 Hudson 成功检出源代码后,您可以让它运行修改后的Ant 脚本来构建源代码并将其部署到本地/远程 Maven 存储库。

于 2010-04-11T13:04:57.303 回答
0

为了获得可重现的构建,我建议您自己检查并构建开源项目并将其安装到您的 Maven 存储库中。这样,您可以在 POM 中引用特定版本,因此您的构建将始终是可重现的。

于 2010-04-12T04:03:18.273 回答