2015-08-18 116 views
0

我读了很多几乎类似的问题,但我遇到了不同的问题。跨多个不同项目的Maven共享项目

我有3个项目:

  1. Project_A
  2. Project_B
  3. Project_Shared

解决方案1:本地安装JAR

我想开发幻灯独立于Project_B的ct_A。但都使用Project_Share,我也想开发 - 这就是为什么我不能手动从Project_Share创建一个jar并将其安装在本地Maven存储库中。

解决方案2:两个不同父POM

我也真的不想改变Project_A和Project_B结构 - 通过增加对他们两种不同的行家父POM。据我了解 - 我可以为两个模块添加父POM:Project_A和Project_Share,然后我可以使用父项目运行Project_A。我不能从中直接运行Project_A(这会抱怨Project_Shared罐子失踪 - 我说的对

的理想解决方案:以这样的方式

配置Maven的Project_A后,我跑Project_A,它将目光Project_Shared的目录,编译它,并获得它的罐子,然后用这个罐子建立Project_A,并运行Project_A

问题:?

是否有可能获得理想的解决方案还是有更好的解决方案?或者我误解了一些东西?

感谢您的帮助!

+1

我不明白这句话:'这就是为什么我不能从Project_Share手动制作一个jar并将其安装到本地Maven仓库中。为什么不?这正是解决方案... – khmarbaise

+0

你是对的。在更改Project_Share之后,我可以手动执行此操作。我认为这可以通过Project_A的某个目标手动完成 - 但它可能会复杂。 – jsosnowski

回答

1

我可以告诉你,Project_A和Project_B是两个不同的项目(它们都不是另一个的父项),因此它们应该完全独立吗?

您有自己的Project_A和Project_B pom.xml。两者都来自Project_Shared。所以Project_Shared有它自己的pom.xml,其他项目poms引用为dependencies

最初您为Project_Shared致电mvn install。之后,您可以构建其他项目。如果要更改Project_Shared,则可以执行相同的操作,并且应该可以对两个项目进行更改。

+0

是的,你是对的。这个解决方案需要在每次修改Project_Shared之后记得调用'mvn install',但这不是太困难。所以如果没有更好的答案出现,这将被接受。 – jsosnowski

+0

可能以下(**解析工作区构件**)也可以帮助在Eclipse中让maven插件在* Project_A *或* Project_B *的构建过程中自动构建* Project_Shared *:http://stackoverflow.com /问题/ 13205734/m2eclipse的-插件 - 什么 - 做排解工作空间,文物办 –