当我运行" mvn clean tomcat:run" (没有指定任何tomcat版本)命令从命令提示符运行我的web应用程序,它下载tomcat 6.0.29版本依赖,如下所示:
org / apache / tomcat / juli / 6.0.29 / juli-6.0.29.pom
组织/阿帕奇/ Tomcat的/注释-API / 6.0.29 /注释-API-6.0.29.pom
组织/阿帕奇/ Tomcat的/卡塔利娜-HA / 6.0.29 /卡塔利娜-HA-6.0.29.pom
组织/阿帕奇/ Tomcat的/丛林狼/ 6.0.29 /丛林狼-6.0.29.pom
组织/阿帕奇/ Tomcat的/部落/ 6.0.29 /部落-6.0.29.pom
组织/阿帕奇/ Tomcat的/碧玉-EL / 6.0.29 /碧玉-EL-6.0.29.pom
组织/阿帕奇/ Tomcat的/ DBCP / 6.0.29 / DBCP-6.0.29.pom
应用程序的pom.xml文件不包含运行所需的任何tomcat版本
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.0.2</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
</plugins>
<finalName>esa</finalName>
</build>
所以我的查询是如何决定下载特定的tomcat版本依赖。
答案 0 :(得分:1)
可能是您运行的tomcat插件的默认设置。
尝试运行mvn tomcat:help -Ddetails
以查看您使用的插件版本以及如何配置。
我认为它是该插件的早期版本,您现在可以使用显式版本,例如
mvn org.apache.tomcat.maven:tomcat6-maven-plugin:2.0:run
mvn org.apache.tomcat.maven:tomcat7-maven-plugin:2.0:run
(或更短的形式)
答案 1 :(得分:1)
似乎,你正在运行codehaus的tomcat-maven-plugin,而且内置了tomcat 6.0.29。 (似乎自2010年以来没有任何活动。) 你应该从apache尝试tomcat7插件。
此致 蒂博尔
答案 2 :(得分:0)
在maven的命令行中使用--debug
选项来获取构建过程的说明。对于我们的案例输出如下:
...[DEBUG] Resolving plugin prefix tomcat from [org.apache.maven.plugins, org.codehaus.mojo]
...
[DEBUG] Resolved plugin version for org.codehaus.mojo:tomcat-maven-plugin to 1.1 from repository central (http://repo.maven.apache.org/maven2, releases)...
实际上为了解释为什么我们在没有指定tomcat的情况下得到了tomcat v1.1,请记住maven构建过程已经使用构建插件进行了自定义。每个构建插件都有自己的构建插件。因此,检查有效的pom文件就足以清楚地了解到几乎空的初始pom.xml具有相当大的有效pom.xml。
要克服问题,只需使用tomcat插件的显式版本。