我在Eclipse中使用m2eclipse发现了一个恼人的问题。
我的工作区包含2个项目,一个应用程序A和一个库B.应用程序A POM将B作为依赖项,一切正常。 (在构建应用程序时找到并使用项目依赖性)
但是,如果我更改项目B中的某些代码并且忘记了mvn:安装它,那么当我构建应用程序时,它会使用库的最后一个版本,并且它会丢失我的上一次更改。
有没有办法强制Maven / M2Eclipse检查依赖的源代码是否比最新版本的内容更新,并在安装/部署主应用程序时安装它?
或者我的方法可能是错的,或者是我遗漏的明显的东西?
答案 0 :(得分:2)
您可以告诉m2eclipse使用工作空间中的解析依赖关系而不是通过正常机制。在项目属性(NOT工作区属性)中,选择Maven->从Workspace项目中解析依赖项。
这意味着当您更改B并随后构建A时,应自动选择更改。
但是,如果您在Eclipse之外构建,则必须执行正常的mvn安装才能获得正确的依赖项。
答案 1 :(得分:1)
我不知道告诉maven首先构建库,然后构建项目的方法。您可以将两个maven命令放入脚本中并运行脚本。
或者,您可以将两个项目放在maven父项目中,然后构建父项目。这会导致所有子项目也被构建(因此在您的情况下,库和应用程序)。
答案 2 :(得分:0)
我认为你有几个选择
如果您可以更改maven项目设置,我建议您使用maven multimodule
选项二可能会解决您的问题,但在更改您的依赖项目时仍然需要手动停止B,在eclipse中为您的依赖项目执行此操作
选择图书馆B ==>属性==> Maven ==>在项目清理后调用的目标下的输入框中:==>输入:install
答案 3 :(得分:0)
如果您希望在本地计算机上运行最新的快照,则应尝试设置直接从Eclipse启动。
除了避免您最初发布的问题外,它还有其他优点。