2010-11-26 34 views
1

プロジェクトに外部ツールビルダとしてシェルスクリプトを追加するためのEclipseプラグインを実装したいと思います。プラグインメニューを押すと、Eclipse設定ファイル.projectは次のように追加されます。もう一つの設定ファイル.externalToolBuilders/lstest [Builder] .launchが生成されます。Eclipse拡張ツールビルダープログラミングに関する質問

<buildCommand> 
     <name>org.eclipse.ui.externaltools.ExternalToolBuilder</name> 
     <triggers>full,incremental,</triggers> 
     <arguments> 
      <dictionary> 
       <key>LaunchConfigHandle</key> 
       <value>&lt;project&gt;/.externalToolBuilders/lstest [Builder].launch</value> 
      </dictionary> 
     </arguments> 
    </buildCommand> 

現在、次のコードを使用して.projectに追加できます。しかし、どうすれば.externalToolBuilders/lstest [Builder] .launchを生成できますか?どうもありがとうございました。

org.eclipse.core.resources.ICommand command = pDesc.newCommand(); 
    command.setBuilderName("org.eclipse.ui.externaltools.ExternalToolBuilder"); 
Map args = command.getArguments(); 
args.put("LaunchConfigHandle", "<project>;/.externalToolBuilders/lstest [Builder].launch"); 
args = conf.getAttributes(); 
command.setArguments(args); 
org.eclipse.core.resources.ICommand command = BuilderUtils.commandFromLaunchConfig(projects[i],conf); 
org.eclipse.core.resources.ICommand[] commands = pDesc.getBuildSpec(); 
org.eclipse.core.resources.ICommand[] nc = new ICommand[commands.length + 1]; 
System.arraycopy(commands, 0, nc, 1, commands.length); 
nc[0] = command; 
pDesc.setBuildSpec(nc); 
projects[i].setDescription(pDesc, null); 

答えて

0

メニューから[実行/外部ツール/外部ツール設定...]をクリックすると、アリランナ、プログラムランナーを定義できます。一方、シェルスクリプトを直接アタッチすることはできませんが、antから呼び出すことはできません。

+0

ご意見をいただきありがとうございます前に、次の行を追加します! – user2510797

0

.externalToolBuildersフォルダにlstest.launchを生成します。あなたのコード

ILaunchManager launchManager = DebugPlugin.getDefault().getLaunchManager(); 
ILaunchConfigurationType antType = 
launchManager.getLaunchConfigurationType(IExternalToolConstants.ID_PROGRAM_BUILDER_LAUNCH_CONFIGURATION_TYPE); 

ILaunchConfigurationWorkingCopy workingCopy = antType.newInstance(BuilderUtils.getBuilderFolder(project, true), "lstest"); 
workingCopy.setAttribute(IDebugUIConstants.ATTR_LAUNCH_IN_BACKGROUND, false); 
workingCopy.setAttribute(IExternalToolConstants.ATTR_LOCATION, "${project_loc}\\YOUR_SHELL_SCRIPT"); 
workingCopy.setAttribute(....); 


ILaunchConfiguration ilc = workingCopy.doSave(); 

create ANT builder programmatically

関連する問題