调试maven而不会丢失MAVEN_OPTS变量

时间:2010-09-29 03:10:51

标签: java maven-2 maven

我想运行jetty:在调试模式下运行,并在环境变量中设置MAVEN_OPTS。但它接缝像硬编码MAVEN_OPTS。是否可以在命令行中设置MAVEN_OPTS,如mvn MAVEN_OPTS=...

谢谢。

4 个答案:

答案 0 :(得分:18)

  

是否可以在命令行中设置MAVEN_OPTS,如mvn MAVEN_OPTS = ...

不,MAVEN_OPTS是一个环境变量,您不能在命令行上设置它。但是你有另一种选择。而不是mvn,您只需运行mvnDebug(设置调试选项的前一个脚本的一点变体):

$ mvnDebug jetty:run
Preparing to Execute Maven in Debug Mode
Listening for transport dt_socket at address: 8000

我发现这个替代方案非常方便,而且更容易。

答案 1 :(得分:7)

在Windows下 - 我不知道。在Linux / Bash下 - 是的,你可以:

export MAVEN_OPTS="-Xnoagent -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000" mvn jetty:run

答案 2 :(得分:4)

在Windows下,您应该能够从命令提示符执行以下操作:

set MAVEN_OPTS=<options you want to add> %MAVEN_OPTS%
mvn jetty:run

在Mac / Linux / Unix下,您可以使用终端导出:

export MAVEN_OPTS=<options you want to add> $MAVEN_OPTS
mvn jetty:run

不确定如何在Windows中执行单用途导出,但在Unix等操作系统上,您可以将变量添加到命令中(这适用于您要添加的任何环境变量)。

MAVEN_OPTS="option1 option2" mvn jetty:run

答案 3 :(得分:3)

我遇到了这个问题,我的解决方案是创建一个.bat文件来设置maven opts,然后启动jetty。

call set MAVEN_OPTS=-Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,address=8484,server=y,suspend=n %MAVEN_OPTS%
call mvn jetty:run-war -DskipTests=true

我选择的IDE是Eclipse,因此我使用带有工具框的运行按钮来调用.bat文件。这是question on running a .bat file.