Eclipse 在maven POM中设置Tomcat库依赖项

Eclipse 在maven POM中设置Tomcat库依赖项,eclipse,tomcat,maven,m2eclipse,Eclipse,Tomcat,Maven,M2eclipse,我目前正在将构建过程从Eclipse/Ant迁移到Maven/M2Eclipse/Artifactory。 我在Eclipse中有一个Webapp作为WTP项目。 我已经用m2eclipse将它迁移到Maven 编译在EclipseIDE中运行良好 然而,当我尝试从Maven CLI编译时(mvn clean&mvn compile),Maven抱怨没有找到Tomcat环境提供的库(如注释api、servlet api等) 很公平:事实上,这些依赖项是由WTP提供的,如Java资源/库/Apac

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

编译在EclipseIDE中运行良好

然而,当我尝试从Maven CLI编译时(
mvn clean&mvn compile
),Maven抱怨没有找到Tomcat环境提供的库(如注释api、servlet api等)

很公平:事实上,这些依赖项是由WTP提供的,如
Java资源/库/ApacheTomcat6
。马文没有意识到他们

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

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

提前谢谢你的建议。 问候,


Raphael

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

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

javax.servlet
jsp api
2
假如

以上是您需要在pom中定义的方式。将范围更改为“提供”,这样maven就不会在最终构建中包含这些JAR。谢谢,您知道Tomcat是否提供了一个POM项目,其中所有库都已列为“提供”了吗?然后我可以将其添加为依赖项。@RaphaelJolivet这会很整洁,同时也在寻找它(实际上是玻璃鱼)。您找到什么了吗?是否可以让m2eclipse(或mvn eclipse:eclispe)将依赖项添加到生成的项目/类路径中?