1

假设我有。

top/
|-parent/pom.xml
|-module1/pom.xml
|-module2/pom.xml ->depends on module1-SNAPSHOT.jar

m2e 的一个很好的特性是,如果我在 eclipse 中导入两个多模块模块,并且如果其中一个依赖于另一个,那么它们的构建输出/类目录将被链接。我不需要在模块 1 上进行 maven 安装,模块 1 上的最新更改仍然被模块 2 接收。

尽管这对于较小的项目或较少的模块来说是一个不错的功能。但是当更新一个项目开始级联构建所有其他项目时会变得很痛苦。每次我从工作区添加或删除项目时,向 Eclipse 添加更多模块也不会影响整个工作区的构建。

那么问题来了:m2e 是否可以直接从 .m2 存储库中引用 SNAPSHOT jar 文件?如果我希望将最新的模块 1 提供给模块 2。我将不得不 maven install module1 它将在 .m2 存储库中创建 SNAPSHOT.jar 文件。

注意:我使用的是 eclipse luna + j2ee.Version:Luna Service Release 2 (4.4.2) Build id: 20150219-0600。所以我使用的是默认的maven m2e-wtp。

4

1 回答 1

1

您需要在要使用快照 jar 引用的项目上禁用工作区解析。所以右键单击说,您的网络项目,然后执行

Maven > 禁用工作区解析

从现在开始,Web 项目将不再引用其工作区项目依赖项,而是引用已安装在本地 Maven 存储库中的 jar。但请注意,这要么全有,要么全无:您不能让一些项目仍然被您的 Web 项目引用,而另一些项目则被它们的快照 jar 引用。这会迫使您每次进行修改时都在项目依赖项上运行mvn install 。

另一种选择是关闭您不打算经常修改的项目。一旦关闭,m2e 将使用来自本地 Maven 存储库的引用。

于 2015-09-01T13:11:04.410 回答