java – 从Eclipse中调试一个maven程序集

我在 Eclipse中有一个项目,它在组装后具有以下的包结构
launcher.tar.gz
 |-- launcher.jar
 |-- lib/
 |-- resources/
 |-- plugins/

这是使用maven-assembly-plugin实现的.

为了正确启动应用程序,需要一些资源,但在最终程序集之外不可用,此外,我希望有能力像现在那样安装插件.

我目前的工作流程是

$mvn [clean] package
$cd target/launcher/
$java -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -jar launcher.jar

一旦应用程序启动时处于暂停状态,我可以附加调试器并恢复正常的工作流程.

如何从Eclipse简化这个过程?

我可以从我的Launcher.java类启动它,但在Eclipse中调试时,我无法通过这种方法安装插件.

解决方法

以下是通过Windows的例子来做一些你想要的方法.部分想法是从 here.

我相信有两种方法可以用eclipse中的按钮执行外部命令.一个自定义的外部工具配置,另一个可以通过在eclipse中的maven的运行配置来实现.我将首先显示外部工具配置:

这个想法是在项目目录的根目录下创建一个批处理文件,并通过创建一个新的外部工具程序配置从eclipse运行它.

所以例如,您的项目目录中的launcher.bat包含以下脚本:

call mvn clean package
call cd target/
call "C:\Program Files\Java\{jdkfolder}\bin\cjava.bat" -{your debug options} -jar launcher.jar

其中cjava.bat是您需要使用以下脚本创建的另一个批处理文件

start /wait cmd.exe /c java %*

然后,您的外部程序启动配置可能看起来像这样,虽然我确定你宁愿明确地设置工作目录,所以你不必突出显示项目,当你单击运行.

在您选择的公共选项卡中设置启动参数

将此外部配置添加到您的收藏夹,以便其访问(外部工具按钮应位于任务栏上).

替代这个,如果你真的想要通过使用运行命令来做到这一点,就是设置一个maven exec配置(exec-maven-plugin),然后用这样的方式调用脚本文件,尽管如此我没有尝试过

<plugin>
                <artifactId>exec-maven-plugin</artifactId>
                <groupId>org.codehaus.mojo</groupId>
                <executions>
                    <execution>
                        <id>Launcher Remote Debug</id>
                        <phase>package</phase>
                        <goals>
                            <goal>exec</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <executable>${basedir}/launcher.bat</executable>
                </configuration>
            </plugin>

然后,您只需删除脚本文件中的mvn clean包的调用,因此您不会在无限循环中结束.

相关文章

最近看了一下学习资料,感觉进制转换其实还是挺有意思的,尤...
/*HashSet 基本操作 * --set:元素是无序的,存入和取出顺序不...
/*list 基本操作 * * List a=new List(); * 增 * a.add(inde...
/* * 内部类 * */ 1 class OutClass{ 2 //定义外部类的成员变...
集合的操作Iterator、Collection、Set和HashSet关系Iterator...
接口中常量的修饰关键字:public,static,final(常量)函数...