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>
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:
mvn jetty:run
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.
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.
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等工具關閉對應端口的進程
When you get in Maven:
Missing indirectly referenced artifact javax.transaction:jta:jar:1.0.1B:compile
the solution is to download “Class Files 1.0.1B” from http://java.sun.com/javaee/technologies/jta/index.jsp and then do:
mvn install:install-file -Dfile=./jta-1_0_1B-classes.zip
-DgroupId=javax.transaction -DartifactId=jta
-Dversion=1.0.1B -Dpackaging=jar