在习惯maven的tomcat插件之后,再使用server的方式部署项目,觉得太麻烦了,所以想着能否在把原来的web项目直接转换成maven项目,再用tomcat7插件运行就可以了,而且好处是可以定义端口号,不用把tomcat改来改去。
首先web项目改成maven项目,项目结构必须是maven结构的。
设置部署路径,这样就可以了。
重点是配置pom.xml。
这样配置:
<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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>tv2.1</groupId>
<artifactId>tv2.1</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<dependencies>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jsp-api</artifactId>
<version>2.0</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
<encoding>UTF-8</encoding>
<compilerArgs>
<arg>-verbose</arg>
<arg>-Xlint:unchecked</arg>
<arg>-Xlint:deprecation</arg>
<arg>-bootclasspath</arg>
<arg>${env.JAVA_HOME}/jre/lib/rt.jar;${env.JAVA_HOME}/jre/lib/jce.jar;${env.JAVA_HOME}/jre/lib/ext/sunjce_provider.jar</arg>
<arg>-extdirs</arg>
<arg>${project.basedir}/src/main/webapp/WEB-INF/lib</arg>
</compilerArgs>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.tomcat.maven</groupId><!--组织 -->
<artifactId>tomcat7-maven-plugin</artifactId>
<configuration>
<path>/</path> <!--访问路径 -->
<port>8081</port> <!-- 端口号 -->
</configuration>
</plugin>
</plugins>
</build>
</project>
具体的解释看百度吧,我就不赘述了。我这里几乎没有使用maven的本地仓库的jar包,而是使用lib目录的jar。
这样,使用tocmat7插件就能够运行maven项目了。
还需要注意的地方是
web项目改成maven项目tomcat插件部署的问题,/WEB-INF目录下的classes文件需要删除,不删除就会影响maven build的运行。
tomcat插件使用debug模式的时候,可能会遇到URLClassPath的问题,这是因为tomcat插件中有断点,
在run-》remove all breakpoints 点击运行即可。