过去3年我在使用Ant之后才开始使用Maven2。到目前为止,我喜欢我所看到的内容,但我仍然掌握了该工具的结构及其与IntelliJ的集成以及后台正在进行的工作。
对Maven最大的吸引力之一是它能够在构建过程中过渡性地解决依赖关系,但是由于缺乏理解,我现在遇到了这个功能的问题。
考虑我非常简单的Java EE项目(简单Web服务),包括以下模块:核心(持久性实体,带有JPA实现的通用DAO),ejb-component(ejb3 Web服务 - 依赖于核心),以及webapp(spring web service - 依赖于核心)。
我已经在存储库中安装了核心模块及其可用,并且我已将其添加为我的ejb模块和我的webapp模块的依赖项,并具有编译范围。但是,如果我的webapp模块中没有javaee api依赖项,则无法编译。目前我的源代码是POJO而没有元数据。
非常感谢任何帮助!
答案 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的相关部分和完全错误将有助于获得更精确的答案。