我正在使用 STS 2.9.1(基于 Eclipse 3.7.2 构建)和与 STS 捆绑在一起的 m2e 插件(v1.0.200.20111228-1245)。
我有一个关于缺少包含多个模块的 Eclipse 项目中的依赖项的问题,或者我可能不完全理解它应该如何工作。
这是一个 Maven 项目。
在我的项目 > 属性 > Java 构建路径 > 库中,我有“Maven 依赖项”库,但它是空的(这就是问题所在)。
主 POM 没有任何依赖关系,但其中声明了几个模块。将依赖项添加到模块的 POM 不会将其添加到“Maven 依赖项”库(这是我的期望),并导致 Eclipse 在源文件中显示错误。
向主 POM 添加依赖项会将其添加到“MD”库中,但当然我不想将所有模块的依赖项添加到主 POM 中,只是为了将其添加到“MD”库中并添加每个依赖项构建路径似乎不正确也不实用。
我试过了:
- 项目 > 清洁,
- Maven > 更新依赖,
- Maven > 更新项目配置,
- 取消选中复选框:Project > Properties > Maven > Resolve dependencies from Workspace 项目。
以上似乎都没有奏效。
示例:
简化的项目结构:
- 简单的项目
- ...
- 示例模块
- ...
- pom.xml
- pom.xml
simple.project/pom.xml:
<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.xml:
<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>