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等工具關閉對應端口的進程