首页 > 技术文章 > Eclipse中使用Maven的Jetty插件Debug Web项目

mataszhang 2016-05-23 15:49 原文

1.环境配置

JAVA_HOME=D:\Program Files\Java\jdk1.8.0_161

JRE_HOME=%JAVA_HOME%\jre

CLASSPATH=.;%JAVA_HOME%/lib/dt.jar;%JAVA_HOME%/lib/tools.jar

 

MAVEN_HOME=D:\Program Files\maven-3.5.3

M2_HOME=%MAVEN_HOME%

MAVEN_OPTS=-Xms128m -Xmx512m -XX:PermSize=128m -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n

PATH=%JAVA_HOME%\bin;%JRE_HOME%\bin;%MAVEN_HOME%\bin;

 

2. POM.xml

<dependencies>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>2.5</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>javax.servlet.jsp</groupId>
            <artifactId>jsp-api</artifactId>
            <version>2.1</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>

    <build>
        <finalName>test</finalName>
        <plugins>
            <plugin>
                <groupId>org.mortbay.jetty</groupId>
                <artifactId>maven-jetty-plugin</artifactId>
                <version>6.1.10</version>
                <configuration>
                    <scanIntervalSeconds>3</scanIntervalSeconds>
                    <webAppConfig>
                        <contextPath>/test</contextPath>
                    </webAppConfig>
                    <connectors>
                        <connector implementation="org.mortbay.jetty.nio.SelectChannelConnector">
                            <port>8081</port>
                        </connector>
                    </connectors>
                </configuration>
            </plugin>
        </plugins>
    </build>

 

3.使用PowerCMD启动Jetty

> cd  webapp项目路径(pom.xml所在目录)

>mvn jetty:run

Listening for transport dt_socket at address: 8000

[INFO] Scanning for projects...

 

 

4.Debug Configuration

进入Eclipse “Run/Debug/Debug Configuration”目录,选择“Remote Java Application”并点击“New”按钮,在“Project”中选择要调试的webapp项目。

并确保端口号与MAVEN_OPTS中“address=”设置的值相同,Host保持默认(localhost)。为了关闭jetty,建议选中步骤二中的“Allow termination of remote VM”。

 

关联源码:选择“Source”标签,选择“Add…”按钮添加关联的源代码。选择“Java Project”,勾选与当前webapp相关的Maven项目源码。

 

然后点击Apply, Debug就可以进行调试了。

 

 

5.另外一种启动方式

如果不想使用cmd命令启动 jetty,可以进入eclipse ->Run/External Tools/External Tools Configuration目录,选择“Program”并点击“New”按钮。在“Main”标签中的“Location”中设置mvn的执行路径(如:D:\Program Files\maven3\bin\mvn.bat),在“Working Directory”中选择webapp所属的workspace,在“Arguments”中添加“jetty:run”,如图:

在“Environment”标签中,点击“New”按钮,添加变量:MAVEN_OPTS=-Xms128m -Xmx512m -XX:PermSize=128m -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n
如果设置suspend=y,则运行时需要等待debugger。

 

推荐阅读