This note is to describe the above plugin. which will run your web application in an embedded Jetty6 instance by just
typing "mvn jetty:run" - No need to download or install Jetty manually, it's all automatic once the Maven project
descriptor's set up (the pom.xml)
Add the following to the <build><plugins> block of your projects pom.xml
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>maven-jetty-plugin</artifactId>
</plugin>
Running
In order to run Jetty on a webapp project which is structured
according to the usual Maven defaults, you don't need to configure
anything.
Simply type:
Due to a bug
in maven or the maven-jetty-plugin this only works if no jetty artifact
is present in the dependencies section of the pom.xml file. This is the
case for wicket-quickstart, wicket-examples and wicket-threadtest. So
the tips given here can't be applied to those projects.
Using maven command line:
I couldn't find a command line reference for maven2, but the one given for maven1 still aplies for the feature used here:
First set MAVEN_OPTS environment variable with the following command:
export MAVEN_OPTS='-Xdebug -Xrunjdwp:transport=dt_socket,address=4000,server=y,suspend=y'
After setting this property, run "maven jetty:run" and it will
block, waiting for a debug connection. If "suspend=n" is set, it will
start right away.
Running Eclipse Open "Run --> External Tools --> External
Tools... --> Program". Press "New launch configuration". On the
"Main" tab, fill in the "Location:" as the full path to your "mvn"
executable. For the "Working Directory:" select the workspace that
matches your webapp. For "Arguments:" add jetty:run.
Move to the "Environment" tab and click the "New" button to add two new variables:
name |
value |
MAVEN_OPTS |
-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=4000,server=y,suspend=y |
JAVA_HOME |
Path to your java executable |
As above the jvm will start right away when "suspend=n" is set.
Attaching to the server running in debug mode, using eclipse:
Running Eclipse Open "Run --> Debug... --> Remote Java
Application". Press "New launch configuration". Fill in the dialog by
selecting your webapp project for the "Project:" field, and ensure you
are using the same port number as you specified in the address=
property above.
Now all you need to do is Run/Debug and select the name of the debug setup you setup above.
This article is a gathering of information, credits need to be given to the authors of the pages behind the given links.
Eclipse中用Maven来启动Jetty调试Web应用
1、先来配置一个外部工具,来运行JETTY:
选择菜单Run->External Tools->External Tools ...在左边选择Program,再点New:
配置Location为mvn完整命令行。定位到bin下的mvn.bat
选择Working Directory为本项目。
Arguments填写:jetty:run
再点选Enviroment页:加入MAVEN_OPTS变量,值为:
-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=8080,server=y,suspend=y
其中,如果suspend=n 表示不调试,直接运行。address=8080为端口
然后,点APPLY,点击Run启动jetty
2、调试应用
点选run->debug...
选中左树中的Remote Java Application,再点New。
选择你的项目,关键是要填和之前设置外部工具时相同的端口号,其它都不变。
注意:停止调试后,8080端口并没有关闭,再运行run->debug后会报错,具体原因没有去深究。建议采用TcpView等工具关闭对应端口的进程