如何使用Escripts插件运行Eclipse Project?

时间:2012-12-24 11:17:05

标签: java eclipse eclipse-plugin eclipse-jdt escript

我已经安装了Eclipse Escripts插件,但它似乎没有适当的文档,我对Eclipse JDT API很新。

我正在尝试编写一个脚本,只需单击一次使用Escripts就可以运行Server和几个Client。服务器和客户端是我在Eclipse中运行的配置。

这是一个可以打开新项目向导的脚本示例

<?xml version="1.0"?>
<escript>
 <action id="org.eclipse.jdt.ui.actions.OpenProjectWizard">
  <dialog title="New Java Project">
   <!-- Enter the project name in the dialog and finish the wizard: -->
   <enter text="Escripts Examples - Java Project"/>
   <click button="Finish"/>
  </dialog>
 </action>
</escript>

所以我的猜测是我需要将action更改为类似org.eclipse.jdt.launching的内容,并在内部XML标记内指定运行配置。我找到JDT的此页面,但找不到运行项目的正确操作。

任何人都可以帮我提出可运行现有Run Configuration的脚本吗?

2 个答案:

答案 0 :(得分:2)

不要搜索JDT文档,只需打开Escripts视图:

Windows
  > Show View
    > Other...
      > Escripts
        > Escripts Elements (drag and drop to a script file)

您将看到所有可用的操作,命令和向导。

创建一个空的.escript文件,在Escripts视图中选择一个项目,然后将其拖放到.escript文件中。

有很多选项,但我发现可以使用以下命令打开“运行配置”对话框:

<command id="org.eclipse.debug.ui.commands.OpenRunConfigurations">
</command>

但是项目也可以按照以下方式启动而无需打开对话框:

<command id="org.eclipse.jdt.debug.ui.localJavaShortcut.run">
  <selection>
    <resource name="<project>/src/<package>/Server.java"/>
  </selection>
</command>

<command id="org.eclipse.jdt.debug.ui.localJavaShortcut.run">
  <selection>
    <resource name="<project>/src/<package>/Client.java"/>
  </selection>
</command>

请务必查看escript.xsd内的XML架构net.sf.escripts_<version>.jar(当前1.0.1.r85)。

顺便说一句,从http://escripts.sf.net/updates安装此插件的人必须取消选中Eclipse安装向导中的“按类别分组项目”复选框,以避免“没有分类项目”(如“详细信息”部分消息)向导说)。

答案 1 :(得分:2)

胡安正好走上正轨! Escripts Elements视图将为您提供Escripts可以驱动的所有可用命令,操作和向导的概述。

ID org.eclipse.debug.internal.ui.actions.RunDropDownAction有一个动作,它似乎对应于单击下拉菜单中的运行配置。如果您能提供要运行的启动配置的名称,则必须进行更多研究。

要获得一般帮助,您可以在http://escripts.svn.sourceforge.net/viewvc/escripts/trunk/net.sf.escripts.tests/src/net/sf/escripts/tests/

找到一些示例文件

我不再主动维护Escripts,但我很乐意进行小修补或将您添加为SourceForge项目的贡献者。 Escripts在线程和竞争条件方面存在一些非常持久的问题,因此它适用于某些任务但不是真正的通用脚本解决方案。我认为在eclipse.org上还有其他一些脚本工作正在进行,但我不知道这项工作的当前状态是什么。

HTH,

的Mirko