当前位置: 首页 > 知识库问答 >
问题:

Eclipse多模块项目中缺少Maven依赖项

江洲
2023-03-14

我正在使用STS 2.9.1(构建在Eclipse 3.7.2上)和与STS(V1.0.200.20111228-1245)绑定的m2e插件。
我有一个问题是包含多个模块的Eclipse项目中缺少依赖项,或者我不完全理解它应该如何工作。

这是一个maven项目。
在我的项目>Properties>Java Build Path>Libraries中,我有“maven dependencies”库,但它是空的(这就是问题所在)。
主POM没有任何依赖项,但它声明了几个模块。向模块的POM添加依赖项不会将其添加到“Maven dependencies”库(这是我的预期),并且导致Eclipse在源文件中显示错误。
向主POM添加依赖项会将其添加到“MD”lib中,但当然我不想将所有模块的依赖项添加到主POM中只是为了将其添加到“MD”lib中,并且将每个依赖项添加到构建路径中似乎既不正确也不实用。

我试过:

  • 项目>清理,
  • Maven>更新依赖项,
  • Maven>更新项目配置,
  • 取消选中复选框:Project>Properties>Maven>Resolve for Workspace Project。

以上这些似乎都起不了作用。

示例:
简化的项目结构:

  • 简单项目
    • ...
    • 示例-模块
      <project ...>
          <modelVersion>4.0.0</modelVersion>
          <groupId>test</groupId>
          <artifactId>simple.project</artifactId>
          <version>0.0.1-SNAPSHOT</version>
          <packaging>pom</packaging>
          <modules>
              <module>sample-module</module>
          </modules>
          <dependencies>
              <dependency><!-- This dependency is present in "MD" lib. -->
                  <groupId>javax.servlet</groupId>
                  <artifactId>servlet-api</artifactId>
                  <version>2.5</version>
                  <scope>provided</scope>
              </dependency>
          </dependencies>
      </project>
      

      simple.project/sample-module/pom.

      <project ...>
          <modelVersion>4.0.0</modelVersion>
          <parent>
              <artifactId>simple.project</artifactId>
              <groupId>test</groupId>
              <version>0.0.1-SNAPSHOT</version>
          </parent>
          <groupId>test</groupId>
          <artifactId>sample-module</artifactId>
          <version>0.0.1-SNAPSHOT</version>
          <dependencies>
              <dependency><!-- I've expected this dependency also to appear in "MD" lib. -->
                  <groupId>junit</groupId>
                  <artifactId>junit</artifactId>
                  <version>3.8.1</version>
                  <scope>test</scope>
              </dependency>
          </dependencies>
      </project>
      

共有1个答案

梁学真
2023-03-14

它不应该起作用。如果项目依赖于另一个项目(使用dependency)或从该项目继承(使用parent),则该项目仅从该项目导入依赖项。module元素仅表示一个聚合。

 类似资料:
  • 我有一个多模块maven项目。请在父POM下方找到。 儿童POM如下所示。 我已经在parent中声明了从slf4j进行日志记录,但在eclipse中没有生成相同的maven依赖项,因此我无法在代码中使用日志记录。谁能告诉我这里出了什么问题吗。

  • 我有一个关于Maven依赖解析机制如何在多模块项目中工作的问题。 通常,我只在构建多模块项目时使用“mvn clean install”,我的假设是,如果项目中的任何模块需要以前的模块,依赖关系将通过访问本地存储库并加载相应的“jar”来解决。 由于项目内部原因,我必须使用“mvn清洁编译”,这个命令自然不会创建任何“jar”,而“install”不存在。所以在这里我开始想知道,多模块项目的依赖项

  • 我有一个多模块maven项目,包含三个模块、和 Core具有以下依赖项定义 我已经为所有三个模块添加了Java9定义,的如下所示: 但是,我不知道如何让的测试类能够在测试执行期间看到类。当尝试测试运行时,找不到类。 如果向的添加需要My.Project.TestUtils;的: 然后在编译时,我得到一个错误,即找不到模块(大概是因为它只是作为测试依赖项引入的)。 在Java9模块化的世界中,如何处

  • 我试图在Tomcat服务器上部署一个基于spring的web应用程序,但我无法自动连接EntityManager。根本原因是错误。 我假设我有不正确的HibernateJAR作为依赖项。任何帮助都将不胜感激 我之前看到一篇帖子指出,问题在于包含了以下依赖项,但我不包括这一项: 以下是我的POM依赖项:

  • 我是Springboot和Maven领域的新手,想问一下我在这里做错了什么/为什么它不能这样工作。 我的绒球

  • 请找到下面所有的3个POM。