将引用的蚀项目添加到Maven依赖项

时间:2020-03-06 14:45:08  来源:igfitidea点击:

现在,我有两个Eclipse项目,它们都使用Maven 2来实现所有jar依赖关系。

在eclipse中,我将项目Foo包含在项目Bar的构建路径中,以便可以使用项目Bar中的Foo的类。这在月食土地上确实很好用,但是当我尝试时:

mvn compile

在Bar的目录中,它失败了,因为Maven不了解Eclipse的构建路径中的项目对项目关系。

如果我使用的是ant,我只会用它来做一些愚蠢的事情,例如将foo.jar复制到项目Bar的类路径中,但据我所知,在Maven-land中,事情做得很少。

我想知道是否存在针对此类问题的标准解决方法,这似乎相当普遍,而且我只是缺少有关Maven工作原理的一些基本知识。

解决方案

我认为最好的处理方法是像Foo一样使Bar成为Maven项目,然后" mvn install"它,以便它在我们本地的Maven存储库中可用。缺点是,每次希望Maven查看对Bar所做的更改时,都必须安装该项目。

也许我们仅通过eclipse configure-> build path引用了另一个项目。只要我们使用Eclipse构建项目,此方法就起作用。

尝试先在项目Bar中运行mvn install(以便将Bar放入maven存储库中),然后将依赖项添加到Foo的pom.xml中。

那应该工作!

没有完整的答案:
Bar的pom需要包含Foo才能使用maven进行编译。
我对这个问题也很感兴趣,但是从如何使Eclipse识别添加了Maven的依赖关系的角度来看,这实际上是同一工作空间中的另一个项目。我目前在执行mvn eclipse:eclipse之后更改构建路径。

查看m2eclipse插件。更改pom时,它将自动动态更新项目构建路径。不需要运行mvn eclipse:eclipse

该插件还将检测同一工作空间中是否有任何依赖项,并将该项目添加到构建路径中。

理想情况下,如果使用m2eclipse,则永远不要手动更改项目构建路径。我们将始终编辑pom.xml,这是正确的方法。

如前所述,Maven将不了解Eclipse项目的构建路径。我们确实需要将所有依赖项添加到pom中,并且需要确保首先通过运行mvn install来构建并安装所有依赖项。

如果要使用一个命令来构建两个项目,则可能会发现项目聚合很有趣。

我们可能想尝试一种替代方法,在该方法中,我们有一个父Maven项目和两个子项目。比方说:

父级(pom.xml引用了两个子项目/模块)
-> A(取决于B)
-> B

然后,当我们从Parent的根目录运行mvn eclipse:eclipse时,maven将为A和B生成eclipse项目,并且在A的类路径中将B作为必需项目。

我们可以从Parent的根目录运行mvn install来编译两个项目。

要完成设置,必须将A和B都导入到Eclipse中,确保不选中"将项目复制到工作区中"。