我在 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 %*
然后你的外部程序启动配置可能看起来像这样,虽然我确定你更愿意明确设置工作目录,这样你就不必在单击运行时突出显示项目。
在公共(public)选项卡中将启动参数设置为您选择的
将此外部配置添加到您的 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/