在maven POM中设置Tomcat库依赖项

时间:2011-01-14 10:41:59

标签: eclipse tomcat maven m2eclipse

我目前正在将构建过程从Eclipse / Ant迁移到Maven / M2Eclipse / Artifactory。 我在Eclipse中有一个Webapp作为WTP项目。 我用m2eclipse将它迁移到了Maven。

编译从Eclipse IDE运行良好。

但是,当我尝试从Maven CLI(mvn clean & mvn compile)编译时,Maven抱怨没有找到Tomcat环境提供的库(如 annotations-api servlet -api 等,...)。

足够公平:确实,这些依赖关系由WTP提供,如Java resources / Libraries / ApacheTomcat6。 Maven不知道他们。

我可以在构建路径中停用它,并在我的POM中添加每个相应的依赖项,但我担心这会导致Maven再次在我的webapp(WEB-INF/libs)中部署它们。

那么,对maven说“这个应用程序将在一个众所周知的环境中运行,提供以下库”的好方法是什么?我可以添加一些常见的Tomcat POM作为依赖吗?

提前感谢您的建议。 的问候,

圣拉斐尔

1 个答案:

答案 0 :(得分:11)

处理此问题的一种方法是使用范围provided声明这些依赖项。这些依赖项可用于编译和测试,但不会由maven打包到webapp中。例如,

        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jsp-api</artifactId>
            <version>2.0</version>
            <scope>provided</scope>
        </dependency>