【问题标题】:Include JAR Maven project into WAR Maven project将 JAR Maven 项目包含到 WAR Maven 项目中
【发布时间】:2014-02-05 06:22:42
【问题描述】:

我有两个 Maven 项目:打包到 JAR 的 Project1 和打包到 WAR 的 Project2。

<!-- Project1's POM -->
<groupId>foobar</groupId>
<artifactId>project1</artifactId>
<version>1.0</version>
<packaging>jar</packaging>

<!-- Project2's POM -->
<groupId>foobar</groupId>
<artifactId>project2</artifactId>
<version>1.0</version>
<packaging>war</packaging>

我想将Project1包含到Project2中,所以在Project2的POM中,我添加了:

<dependency>
    <groupId>foobar</groupId>
    <artifactId>project1</artifactId>
    <version>1.0</version>
</dependency>

但 Project2 无法解决此依赖关系。

在 Project2 的属性 Java Build Path > Libraries 中,我可以看到 Project2 在我的“~/.m2”文件夹中寻找“project1-1.0.jar”。这正常吗?

有没有人也遇到过这个问题并最终找到了解决方案?即使在 SO 中寻找相关问题的答案,我也无法让它发挥作用。


  • Eclipse 开普勒
  • Maven 3.0.4
  • Eclipse WTP (Juno) 1.0.1 的 Maven 集成

【问题讨论】:

  • 除非您在项目上运行 maven install1。它不会作为 jar 文件打包到您的 .m2 存储库中,因此不会在 project2 的 pom 文件中解析。

标签: java eclipse maven include dependencies


【解决方案1】:

除非您在 project1 上运行 maven 安装。它不会作为 jar 文件打包到您的 .m2 存储库中,因此不会在 project2 的 pom 文件中解析。

这类似于使用第三方 jar 文件。但在 .m2 存储库中没有它。即使在这种情况下,您也会面临同样的问题。

对于您的项目 2,项目 1 被视为独立的第三方 jar 文件。 它需要在您的 .m2 存储库中,以便解决它。

【讨论】:

    【解决方案2】:

    为确保 Eclipse WTP 理解您的项目相互依赖,您需要为两者定义一个多模块父项目。 否则,您每次更新时都需要“mvn install”project1,并且您会看到依赖项通过 ~/.m2,正如您所观察到的那样。

    网络上有很多关于多模块项目的资源 - 您需要做出的最大选择是是否需要平面布局(所有项目目录,包括父模块项目的目录,位于同一基本目录中)或分层布局(父模块项目目录包含子模块项目目录)。

    【讨论】:

      猜你喜欢
      • 2014-10-06
      • 2017-11-06
      • 2014-06-30
      • 2017-10-13
      • 2016-06-23
      • 2018-12-19
      • 1970-01-01
      • 2015-12-12
      • 1970-01-01
      相关资源
      最近更新 更多