微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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包的调用,因此您不会在无限循环中结束.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐