【问题标题】:Maven: how to build jar and include as a dependencyMaven:如何构建 jar 并将其包含为依赖项
【发布时间】:2015-06-10 10:48:36
【问题描述】:

我有一个多模块项目。我正在使用 eclipse 和 Maven 3。我希望首先构建一个 jar(一个带有自己的 pom 的独立项目)。这不是问题。

问题是这个 jar 包含在我的多模块 EAR 项目的依赖项中(由两个战争使用)。 JAR 的代码会经常更改,并且需要在构建 EAR 项目之前进行构建。

如何在一次操作中构建 EAR 之前构建此 jar?

这是我的设置:

parentProject (packaging=pom, dependency[filters down to wars]=jarProject)
earproject (packaging ear, parent=parentProject)
war1Project (packaging war, parent=parentProject)
war2Project (packaging war, parent=parentProject)
jarProject (packaging=jar, no parent)

【问题讨论】:

  • 您的 jarProject 应该与其他 jarProject 具有相同的父级,并创建从 war 项目到 jarProject 的依赖关系。
  • jar 项目是独立的。它可以用于其他项目。我只需要确保我在构建 EAR 时使用的是最新的代码
  • 它被其他项目使用并不妨碍将其放入父项目下的多模块中。这样可以确保 jarProject 在 war 项目之前构建,并且 ear 正在构建。

标签: eclipse maven maven-3


【解决方案1】:

将您的 jar 项目添加为 多模块 EAR 项目的 POM 中的最顶层 <module>

另见Maven: The Complete Reference, Multi-module vs. Inheritance

【讨论】:

  • 这个我试过了。但是它没有最新的代码,并且在发布和测试时出错,因为它仍然使用旧的 jar 代码。知道为什么会这样吗?
  • @MarkW 结果是?你能提供每个pom.xml的相关部分和构建的输出吗?
  • ...我在父 pom 中尝试过,因为这是 所在的位置
  • 结果是一个成功的构建,反应堆摘要显示 parentProject、jarProject、war1Project、war2Project、earProject 的顺序都是成功的。
  • 问题是 maven 构建破坏了我的工作区,因此从我的工作区发布导致旧代码被发布。我只需要记住在运行 maven 构建后清理我的工作区。
猜你喜欢
  • 2015-07-12
  • 2020-05-08
  • 2014-04-02
  • 2012-04-01
  • 1970-01-01
  • 2018-12-19
  • 1970-01-01
  • 2012-05-13
  • 2014-10-06
相关资源
最近更新 更多