Maven2中的传递依赖

时间:2010-10-07 09:22:56

标签: maven-2 dependencies

过去3年我在使用Ant之后才开始使用Maven2。到目前为止,我喜欢我所看到的内容,但我仍然掌握了该工具的结构及其与IntelliJ的集成以及后台正在进行的工作。

对Maven最大的吸引力之一是它能够在构建过程中过渡性地解决依赖关系,但是由于缺乏理解,我现在遇到了这个功能的问题。

考虑我非常简单的Java EE项目(简单Web服务),包括以下模块:核心(持久性实体,带有JPA实现的通用DAO),ejb-component(ejb3 Web服务 - 依赖于核心),以及webapp(spring web service - 依赖于核心)。

我已经在存储库中安装了核心模块及其可用,并且我已将其添加为我的ejb模块和我的webapp模块的依赖项,并具有编译范围。但是,如果我的webapp模块中没有javaee api依赖项,则无法编译。目前我的源代码是POJO而没有元数据。

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

  

但是,如果我的webapp模块中没有javaee api依赖项,则无法编译。目前我的源代码是POJO而没有元数据。

Web应用程序(以及一般的Java EE模块)大多数时候需要编译时依赖于Java EE API,例如将在提供的Servlet API等容器的运行时。使用Maven时,使用provided scope声明此类依赖项。例如:

<dependency>
  <groupId>javax</groupId>
  <artifactId>javaee-api</artifactId>
  <version>6.0</version>
  <scope>provided</scope>
</dependency>

在您的情况下,由于您提到了编译问题,我很想说您的webapp模块确实缺少对某些API的依赖,这些API应该如上所述声明。

目前尚不清楚这与问题标题的关系。也许提供POM的相关部分和完全错误将有助于获得更精确的答案。

参考