使用Maven从Subversion trunk中的源代码构建JAR

时间:2010-04-11 05:47:10

标签: svn maven-2 dependency-management

我想在我的项目中使用Java库。我的项目使用Maven来引入依赖项,除了这个库以外,它对所有东西都很有用。问题是,这个库永远不会有发布。作者将源保存在Subversion存储库中,仅在trunk中进行更改。

有没有办法告诉Maven

  1. 从Subversion
  2. 更新(或签出)库的源代码树
  3. 根据其POM
  4. 构建它
  5. 使用生成的jar作为此项目的依赖项
  6. 定期(可能在每个版本中)执行此操作
  7. 对于奖励积分,请标记我想要使用的图书馆的Subversion版本
  8. 谢谢!

5 个答案:

答案 0 :(得分:0)

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

  • 你编写了一个shell脚本/ bat文件,它检查源代码,构建工件,并部署到你控制下的maven仓库。
  • 使用快照依赖关系,您将在工件中获得时间戳,确保项目的每个版本都使用工件的最新版本,而您根本不必更新项目的pom.xml。
  • 您可以在项目的pom.xml中使用ant任务,该任务将挂钩到项目构建周期并执行构建和部署工件的shell脚本。

答案 1 :(得分:0)

做开源事情:

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

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

答案 2 :(得分:0)

如果你不控制某些东西,你就不能......控制它。所以我会:

  • 检查项目仓库的来源
  • 将其置于vcs
  • 中的版本控制
  • 构建一个版本(并在vcs中标记库)
  • 通过公司存储库分发已发布的工件

你真的不想自动化这个(如果作者提交的东西会破坏你的代码,如果你需要修复代码的发布版本中的错误但不能使用完全相同的内容,那该怎么办?图书馆)。将其置于源代码管理之下并自行管理版本。

答案 3 :(得分:0)

您可以尝试使用持续集成解决方案Hudson及其Subversion Plug-in来定期检查来源。

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

答案 4 :(得分:0)

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