2017-03-31 73 views
0

我有Maven项目A,它依赖于Maven项目B.这些由我在GitHub存储库中维护。项目B是一个将被许多其他项目使用的实用程序项目。项目A是使用项目B中的实用程序的应用程序。我的Maven项目不存在于任何公共存储库中,目前正在开发中。
现在,我希望另一个人与我的项目A进行整合。我不能只打包我的项目并将它们发送,因为它们会不断变化。他/她必须在他/她的构建环境中签出我的代码,并将我的部件集成到他/她的应用程序中,并定期从我的回购库中抽取更改。
这里的要点是,我希望两个项目齐头并进。谷歌搜索后,我结束了这两个解决方案:
1)使他们同一父项目的兄弟姐妹。这种方法的优点是,集成商在签出父项目时将始终采取所有依赖关系。但是,这个解决方案永远将这两个项目紧密地结合在一起项目B是一个实用项目,将被不关心项目A的其他项目使用。
2)“手动”指示集成商签出两个项目并处理对他/她的依赖关系,例如,通过将项目安装到他/她的本地Maven repo或让IDE解决工作区依赖关系。这种方式虽然我必须手动告诉集成商的依赖关系,他/她将不得不记得将更新版本重新安装到本地仓库。如何让两个Maven项目松散耦合?

是否有任何其他策略让集成商以自动方式获取所有依赖关系,并且能够自动构建我的代码而无需人工干预?另一个要求是项目B不会与项目A紧密耦合,因此未来可以由其他项目自由使用。

我脑海中出现的一些问题必须与Maven依赖关系方案上的不同结构或者支持该过程的持续集成组件有关。然而,我并没有明确的策略来解决这个问题,或者甚至有可能......任何线索?

回答

0

如果你的项目是开源的,你可以使用这个过程:http://central.sonatype.org/pages/ossrh-guide.html 避免必须托管自己的Maven回购。

您的其他选择是站起来您自己的Nexus/Maven存储库,并让依赖您的构件的项目在settings.xml文件中配置另一个存储库,以便他们可以检查Nexus存储库中的快照部署。您可以根据需要将快照部署到Maven存储库中。

+0

是的,使用这一段时间似乎做了这项工作。接受答案并致谢! –