【问题标题】:Debugging maven without losing MAVEN_OPTS variable在不丢失 MAVEN_OPTS 变量的情况下调试 maven
【发布时间】:2011-04-18 14:57:41
【问题描述】:

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

谢谢。

【问题讨论】:

    标签: java maven-2 maven


    【解决方案1】:

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

    不,MAVEN_OPTS 是一个环境变量,你不能在命令行上设置它。但是你有一个选择。除了mvn,您可以简单地运行mvnDebug(设置调试选项的前一个脚本的一点变化):

    $ mvnDebug 码头:运行 准备在调试模式下执行 Maven 在地址监听传输 dt_socket:8000

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

    【讨论】:

    • 很难相信这个命令没有指定端口号的选项。
    【解决方案2】:

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

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

    【讨论】:

    • 如果您使用相同的选项,我认为与使用 mvnDebug 相比没有任何优势。
    • 该问题明确指的是设置环境变量并使用一个命令运行 Maven。我不是说它比 mvnDebug 更好:)。
    • 在 Linux Ubuntu 16.04 上运行此命令后跟 mvnDebug 一个给我错误Cannot load this JVM TI agent twice
    【解决方案3】:

    在 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
    

    【讨论】:

      【解决方案4】:

      我遇到了这个问题,我的解决方法是创建一个.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.

      【讨论】:

      • 您不需要制作 .bat 文件,只需运行命令即可。 (不能忘记 call 指令)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-03-06
      • 2017-09-29
      • 2015-03-07
      • 1970-01-01
      • 1970-01-01
      • 2014-02-07
      • 2013-04-10
      相关资源
      最近更新 更多