我在
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简化这个过程?
解决方法
以下是通过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>