2013-10-21 85 views
0

我有一个独立的Maven项目,我使用org.codehaus.mojo exec插件运行java程序。Maven3 - 仅调试主要源代码

 <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>exec-maven-plugin</artifactId> 
      <version>1.2.1</version> 
      <executions> 
       <execution> 
        <goals> 
         <goal>exec</goal> 
        </goals> 
       </execution> 
      </executions> 
      <configuration> 
       <executable>java</executable> 
        <argument>-classpath</argument> 
        <classpath> 
        </classpath> 
        <argument>com.abc.Main</argument> 
       </arguments> 
      </configuration> 
     </plugin> 

我也有测试用例在src/test/java目录下,我可以使用surefire插件进行调试。但是,我无法直接通过运行com.abc.Main类来使用mvnDebug来调试主代码(尽管通过将调试模式下的Eclipse工作区项目附加到正在被mvnDebug监听的端口上看起来很简单)。我想知道我们是否可以直接在主代码上使用surefire插件进行调试?

修订

我用eclipse开普勒版本安装 “Maven的集成Eclipse的” 插件

+0

通常,当你没有人回复时,你知道你没有做好解释和说明你的问题......显示一些代码,绘制图片,更详细地解释你的问题。我也有一个问题:我的一些代码没有达到我的预期。你知道什么是错的吗? :) – carlspring

+0

好的,我按照你的建议更新了这个。是的,我知道什么是错的,这就是为什么我在这个网站:) – IndoKnight

回答

2

尝试运行Maven的是这样的:

mvn -Dmaven.surefire.debug="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=9001 -Xnoagent" clean install 

,并使用远程调试器连接到端口9001.这将允许您在测试代码中放置断点。

+0

谢谢,在这里你的命令运行的测试用例类,我不想。我想在调试模式下运行主程序。我通过用“exec:exec”替换“clean install”来尝试你的命令。它只是运行我的程序而不进行调试。通过你的命令,我可以将我的主要源代码“通过”测试用例作为起点进行调试,我已经知道并在我的文章中提到了这些源代码。 – IndoKnight

+0

在这种情况下,请尝试通过传入此处描述的JVM调试选项来调试'exec:exec':http://stackoverflow.com/questions/2935375/debugging-in-maven。 – carlspring