【问题标题】:In m2e multimodule project delinking of classpath of imported projects在 m2e 多模块项目中,将导入项目的类路径分离
【发布时间】:2015-08-31 18:10:08
【问题描述】:

假设我有。

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) 内部版本号:20150219-0600。所以我使用的是默认的maven m2e-wtp。

【问题讨论】:

    标签: eclipse maven m2eclipse m2e m2e-wtp


    【解决方案1】:

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

    Maven > 禁用工作区解析

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

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

    【讨论】:

      猜你喜欢
      • 2023-03-25
      • 2015-02-21
      • 1970-01-01
      • 2016-06-12
      • 2018-02-11
      • 1970-01-01
      • 2016-10-23
      • 1970-01-01
      • 2019-04-13
      相关资源
      最近更新 更多