【问题标题】:Maven, m2e, not building local dependenciesMaven,m2e,不构建本地依赖项
【发布时间】:2015-11-27 12:58:53
【问题描述】:

我们有一个这样的 Maven 模块设置:

  • 父母
    • 常见
    • 网络应用

webapp 声明了对 common 的依赖。

在我们的 Eclipse 环境中,我们使用 m2e 对 common 进行了更改。然后在webapp 上运行 maven 包,部署并测试了 web 服务。现在有一个错误表明我们所做的包不包含最新的共同更改。

我们正在尝试找出在日常开发中使用 Maven 的最佳方式。那么处理这种情况的最佳做法是什么?

解决这个问题的方法是;在common 中进行更改,保存它们,运行maven install,在webapp 中进行更改,运行maven 包,并使用war 文件进行测试。但这包含很多手动步骤。

我想另一种方法是在父级上运行 maven 包,但是随着父级的模块越来越多,这将花费更长的时间。

【问题讨论】:

  • 这些项目是同一个多模块项目的一部分吗?如果是这样,您不应该从模块运行 Maven,而是从父模块运行。
  • @Tunaki 是的,他们都共享同一个父级。但是,如果父级从仅包含两个模块发展而来,那么构建将花费很长时间来更改两个模块,不是吗?
  • 它会,但问题是:如果只有这两个项目不断变化,为什么还有其他模块开始?它们可能是独立的项目。

标签: java eclipse maven m2e


【解决方案1】:

除非您单独打包和部署,否则您如何期望对 common 的更改可用? Maven 不是魔术,它不能让魔术发生。在这种情况下,解决方案是手动部署 common 或按照您的建议打包并部署 parent。

【讨论】:

    【解决方案2】:
    Parent  1.0-SNAPSHOT
            +common 1.0-SNAPSHOT
             +webapp 1.0-SNAPSHOT
    
    1. 您必须在父模块中使用快照版本,并在两个模块中重复使用相同的版本。
    2. 您必须在 eclipse 中导入每个模块
    3. 您必须从父级运行 mvn clean install

    如果您执行所有这些操作,Eclipse 将识别何时存在对“common”项目的依赖项“webapp”项目。 Eclipse 在“webapp”项目的构建路径中采用“common”项目。 'webapp' 可以看到 'common' 的任何变化。

    【讨论】:

      猜你喜欢
      • 2017-11-29
      • 2015-05-13
      • 2013-03-09
      • 2012-08-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-12
      相关资源
      最近更新 更多