使用eclipse调试Maven构建的更短方法

时间:2017-02-24 10:56:43

标签: java eclipse maven debugging

我在eclipse中有一个Maven项目,我使用Run配置运行。该配置compileexec:exec在我的pom.xml中定义的脚本(称为 runner )依赖于操作系统(Windows .bat { Linux中的{1}}。跑步者做依赖于操作系统的东西,然后用我的应用程序启动Java。使用哪个运动员指定如下的配置文件:

.sh

因此,当我想运行它时,我使用<profile> <id>WINused</id> <activation> <os> <family>windows</family> </os> </activation> <properties> <runnerForLaunch>${basedir}/src/runners/windowsRunner.bat</runnerToUse> </properties> </profile> 并选择Maven配置。之后,我只使用Alt+Shift+X, M

当我必须调试时,我必须执行以下操作:

  1. 编辑Ctrl+F11以使用另一个将pom.xml添加到Java调用的转轮脚本。
  2. 启动运行配置。
  3. 启动连接到调试器的调试配置。
  4. 我的问题是,我可以以某种方式缩短这个过程吗?我经常忘记撤消对-agentlib:jdwp=transport=dt_socket,server=y,address=8000,suspend=y的更改,并使用我目前不需要的跑步者。 Maven能否以某种方式检测我是否使用运行 调试并根据其调整变量来运行它?

2 个答案:

答案 0 :(得分:1)

如果POM中的runner配置支持命令行参数:

  • 创建另一个包含以下内容的个人资料:

    <profile>
      <id>debug</id>
      <properties>
        <debugArgument>-agentlib: ...</debugArgument>
      </properties>
    </profile>
    
  • 在以下位置使用新属性:

    <runnerForLaunch>${basedir}/src/runners/windowsRunner.bat ${debugArgument}</runnerToUse>
    
  • 在调试配置中将debug添加到配置文件:

  • 在脚本中的Java调用中使用%1$1

或者:

  • 声明并提供属性值<debugArgument>debug</debugArgument>
  • 在脚本中评估%1$1,并相应地使用不同的参数调用Java。

或者:

  • 在调试配置中将带有1)debugArgument或2)debug的属性-agentlib: ...添加到参数名称 /
  • 使用以下属性:

    <runnerForLaunch>${basedir}/src/runners/windowsRunner.bat ${debugArgument}</runnerToUse>
    
  • 1)为%1评估$1debug并相应地使用不同的参数调用Java,或者2)在脚本中的Java调用中使用它们。

答案 1 :(得分:0)

通常,您不需要添加调试选项,因为eclipse只需通过调用&#34; mvnDebug&#34;来添加它们。而不是&#34; mvn&#34;调试maven项目时。我建议您在运行Java应用程序之前运行shell脚本,然后使用exec:java启动Java应用程序,以使其在连接到eclipse调试器的maven进程内运行。