java - 从 Eclipse 中调试 Maven 程序集

标签 java eclipse maven debugging maven-assembly-plugin

我在 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 %*


然后你的外部程序启动配置可能看起来像这样,虽然我确定你更愿意明确设置工作目录,这样你就不必在单击运行时突出显示项目。

external tools config



在公共(public)选项卡中将启动参数设置为您选择的

enter image description here

将此外部配置添加到您的 Collection 夹以便于访问(外部工具按钮应该已经在任务栏上)。


如果您真的希望能够通过使用运行命令来执行此操作,那么替代方法是设置一个 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 package 的调用,这样您就不会陷入无限循环。

关于java - 从 Eclipse 中调试 Maven 程序集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42382913/

相关文章:

java - 如何使用 java.util.zip 制作 epub

Eclipse 中的 Java 编辑器就像一个纯文本编辑器

java - 在 Play 商店发布后 map 无法加载

java - 在构建时获取 Maven 属性

java - 在单元测试中反射(reflection)以检查代码覆盖率

java - 由 : org. postgresql.util.PSQLException 引起:尝试自动创建数据库时数据库不存在

maven - 本地 Maven 依赖项目被引用为类文件夹而不是 jar

java - 如何使用 -Xlint :unchecked in a Maven project? 进行编译

java - (Java) 将事件写入日志文本文件

c++ - 无法解析方法 'shrink_to_fit'