【问题标题】:Build Maven JAR depending on local project根据本地项目构建 Maven JAR
【发布时间】:2012-06-25 17:35:35
【问题描述】:

我在 Eclipse 中有一个项目(我们称之为项目 A),它是一个 Maven 项目。它是一个供其他项目使用的库。

我有一个项目 B,它也是一个 Maven 项目,它依赖于项目 A。在项目 B 的 pom.xml 中,我添加了一个引用项目 A 的依赖项,它可以从 Eclipse 完美构建和运行。

现在我想从项目 B 构建一个可执行的 JAR。之前我通过将 maven-assembly-plugin 插件添加到 pom.xml 然后从命令行运行 mvn assembly:single 来完成此操作。

当我在项目 B 中运行 mvn assembly:single 命令时,它会抛出一个错误,提示它找不到项目 A。

现在为 B 构建可执行 JAR 的最佳方法是什么?有没有办法从 Eclipse 构建它(并且可能它会像它一直在做的那样处理依赖项引用)或者有没有办法告诉 Maven 项目 A 是本地的,它应该使用本地项目 A 构建项目 B。

【问题讨论】:

标签: java maven deployment jar maven-assembly-plugin


【解决方案1】:

当使用 Maven 项目作为 Eclipse 之外的依赖项时,您必须先将其安装到本地存储库中。您可以使用install 命令执行此操作:

install:将包安装到本地仓库,作为本地其他项目的依赖项

此引用来自Maven in 5 Minutes 教程。


“问题”是 Eclipse 将像任何其他项目一样使用其内部编译器构建 Maven 项目。由于 Maven 依赖项被映射到正常的 Eclipse 依赖项,因此您不必 install 您的项目。但是,只要您真正使用 Maven 来构建它们(甚至在 Eclipse 中),您就可以这样做。

【讨论】:

  • 所有安装示例似乎都让你指向一个 JAR 文件,我的意思是我需要先手动构建项目 A,然后在 B 中安装 A。可能 maven 不知道然后构建 A构建 B?
  • 没有。 Maven 拥有的所有信息是,您对某个具有特定组、名称和版本的项目有依赖关系。如果在本地存储库(在您的机器上)、标准存储库(Maven Central)或在 POM 文件中配置的其他存储库中找不到它,它将不知道该怎么做。
  • 所以是的,您只需先install 项目 A,然后您就可以构建项目 B。
  • 肯定有一种方法可以在 Eclipse 中通过单个命令或操作来构建和安装本地项目依赖项,然后构建主项目。对吗?
  • 据我所知,至少不是一般情况。但是,您可以将项目设置为聚合器项目的模块并将它们全部构建在一起:maven.apache.org/guides/mini/guide-multiple-modules.html
猜你喜欢
  • 1970-01-01
  • 2017-10-13
  • 2017-11-29
  • 2015-05-13
  • 1970-01-01
  • 2016-05-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多