1. 使用maven tomcat插件快速部署和启动web工程:

mvn tomcat:run

如果要调试,可以先在命令行设置如下环境变量:

Windows: set MAVEN_OPTS=-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000 Linux: export MAVEN_OPTS=-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000

然后在eclipse中就可以链接8000端口(可随意设定)进行调试了。

TIPS

如果是tomcat7的话,需要制定版本号:mvn tomcat7:run

2. 使用Eclipse Server插件调试

如果在J2EE版本的Eclipse中,那么也可以使用内置的Servers插件进行。不过有些小技巧。

首先,通过Window==>Show Views==>Servers调出Servers视图。然后添加你的本地web服务器目录(这里选择tomcat为例)。

配置完成之后会生成一个叫做Servers的Project。打开项目,里面其实是tomcat的配置文件,这样修改tomat配置不会影响到你本地tomcat,而tomcat代码是共享的。

然后一切就像部署到本地tomcat一样处理了。打开server.xml文件,在里面配置要添加的工程:

<?xml version="1.0" encoding="UTF-8"?>

<Server port="8005" shutdown="SHUTDOWN">
  <Service name="Catalina">
    <Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>
    <!-- Define an AJP 1.3 Connector on port 8009 -->
    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443"/>
    
    <Engine defaultHost="localhost" name="Catalina">
      <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/>
      
      <Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true" xmlNamespaceAware="false" xmlValidation="false">
        <Context docBase="C:\Users\arganzheng\workspace\myWebProj\WebContent" path="/xxxx" />
        
      </Host>
      
    </Engine>
  </Service>
</Server>

这里使用了Context配置项,配置了一个外部webapp,tomcat启动的时候就好加载它。

<Context docBase="C:\Users\arganzheng\workspace\myWebProj\WebContent" path="/xxxx" />

注意:如果你是通过Eclipse的Web/Dynamic Web Project向导生成的web工程,需要修改一个它的buildPath中的Default output folder为WebContent\WEB-INF\classes。这样他就是一个标准的war包目录了。

3. 使用独立外部tomcat调试

如果是自己启动tomcat,那么可以直接使用jpda调试:

$./catalina.sh jpda run