使用Tomcat7 Maven插件可以运行一个嵌入式的tomcat,无需依赖独立安装的Tomcat。
对比如下操作实在是方便太多:
下载Tomcat,在Eclipse中配置Server,将工程发布到Server,再运行Server。
Tomcat7 Maven插件的官方的介绍:http://tomcat.apache.org/maven-plugin-trunk/run-mojo-features.html
----------------------------------
tips:
POJO
Plain Old Java Object 普通java对象
MOJO
Maven plain Old Java Object 是一个maven的goal,用来扩展maven的功能
------------------------------
操作步骤:
1 pom.xml文件如下
2 运行mvn clean tomcat7:run
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>xue</groupId>
<artifactId>practice.struts</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>practice.struts Maven Webapp</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jsp-api</artifactId>
<version>2.0</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<finalName>Basic_Struts2_Mvn</finalName>
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<!-- http port -->
<port>9090</port>
<!-- application path always starts with / -->
<path>/webapp</path>
</configuration>
</plugin>
</plugins>
</build>
</project>
------------------------------
tips:
如果工程中有jsp文件,则必须引入jsp-api。这会顺带把servlet-api也引入了
scope为provided的含义(转)
provided 依赖只有在当JDK 或者一个容器已提供该依赖之后才使用。
例如, 如果你开发了一个web 应用,你可能在编译 classpath 中需要可用的Servlet API 来编译一个servlet,但是你不会想要在打包好的WAR 中包含这个Servlet API;这个Servlet API JAR 由你的应用服务器或者servlet 容器提供。已提供范围的依赖在编译classpath (不是运行时)可用。它们不是传递性的,也不会被打包。
---------------------
碰到的问题:
写了一个测试Servlet,但是运行的时候总是报找不到这个类。
后来发现是我把类放在了src/main/resources目录下,使用webapp模板创建的web工程竟然没有src/main/java目录,需要自行创建。