我正在尝试使用maven及其tomcat插件部署和运行我的webapplication。
我在项目的pom.xml中设置了它,但是当我从命令行调用它时:
mvn tomcat:run
我得到的只是:
[root@ovz6022 trunk]# mvn -e tomcat:run
+ Error stacktraces are turned on.
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Building Unnamed - com.gotbrains.breeze:breeze:jar:1.0
[INFO] task-segment: [tomcat:run]
[INFO] ------------------------------------------------------------------------
[INFO] Preparing tomcat:run
[INFO] [resources:resources {execution: default-resources}]
[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] skip non existing resourceDirectory /root/trunk/src/main/resources
[INFO] [compiler:compile {execution: default-compile}]
[INFO] Nothing to compile - all classes are up to date
[INFO] [tomcat:run {execution: default-cli}]
[INFO] Skipping non-war project
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 24 seconds
[INFO] Finished at: Thu Jul 23 14:34:31 MDT 2009
[INFO] Final Memory: 7M/14M
[INFO] ------------------------------------------------------------------------
就是这样。 Tomcat还没有发布,但我没有看到任何错误。
有人知道发生了什么吗?
答案 0 :(得分:25)
如前所述,你应该使用战争包装。但是,如果你不能因为你正在使用OSGI或其他原因,即使它不是使用ignorePackaging选项的war包装,你也可以告诉Tomcat插件:
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat6-maven-plugin</artifactId>
<version>2.0</version>
<configuration>
<ignorePackaging>true</ignorePackaging>
答案 1 :(得分:17)
线索在线:
[INFO] Skipping non-war project
tomcat:run目标是用于战争项目,我猜你的是一个jar项目。
您需要将项目的包装更改为战争,您可能还需要为战争提供一些额外的配置以实际执行任何操作。
注意:我建议你的jar项目有一个单独的war项目,然后将jar作为依赖项添加到战争中。
答案 2 :(得分:2)
如果您正在使用Roo,并且还没有调用控制器命令,那么您的配置尚未设置为生成WAR文件。