我想在我的项目中使用一个 Java 库。我的项目使用 Maven 来引入依赖项,它适用于除这个库之外的所有内容。问题是,这个库从来没有发布过。作者在 Subversion 存储库中维护源代码,仅在主干中进行更改。
有没有办法告诉 Maven
- 从 Subversion 更新(或签出)库的源代码树
- 根据它的 POM 构建它
- 使用生成的 jar 作为此项目的依赖项
- 定期执行此操作(可能在每次构建时)
- 对于奖励积分,标记我要使用的那个库的哪个 Subversion 版本
谢谢!
我想在我的项目中使用一个 Java 库。我的项目使用 Maven 来引入依赖项,它适用于除这个库之外的所有内容。问题是,这个库从来没有发布过。作者在 Subversion 存储库中维护源代码,仅在主干中进行更改。
有没有办法告诉 Maven
谢谢!
以下不是更简单但更有效的解决方案:
做开源的事情:
您可以联系图书馆的作者。我敢打赌,他很高兴得到一些反馈。让他知道你需要什么,他可能会做。或者提供帮助 mavenizing 库或帮助发布。这样其他用户也可以获利。
作为一些开源项目的开发者,我喜欢这种反馈。
如果你不控制某事,你就无法……控制它。所以我会:
你真的不想让这更多的自动化(如果作者提交了一些破坏你的代码的东西,如果你需要修复你的代码的已发布版本中的错误但不能使用完全相同的库怎么办)。将其置于源代码控制之下并自行管理发布。
您可以尝试使用 Hudson(一种持续集成解决方案)及其Subversion 插件来定期检查源代码。
在 Hudson 成功检出源代码后,您可以让它运行修改后的Ant 脚本来构建源代码并将其部署到本地/远程 Maven 存储库。
为了获得可重现的构建,我建议您自己检查并构建开源项目并将其安装到您的 Maven 存储库中。这样,您可以在 POM 中引用特定版本,因此您的构建将始终是可重现的。