在maven POM中设置Tomcat库依赖项

Rap*_*vet 7 eclipse tomcat m2eclipse maven

我目前正在将构建过程从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作为依赖吗?

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

拉斐尔

Rag*_*ram 11

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

        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jsp-api</artifactId>
            <version>2.0</version>
            <scope>provided</scope>
        </dependency>
Run Code Online (Sandbox Code Playgroud)

  • 谢谢,您知道Tomcat是否提供了一个已经列出为“提供”的所有库的POM项目吗?然后,我可以将其添加为依赖项。 (2认同)