Вопрос о программировании Eclipse Extense Tool. - PullRequest
1 голос
/ 26 ноября 2010

Я хотел бы реализовать плагин eclipse для добавления сценария оболочки в качестве внешнего компоновщика инструментов в проект.После нажатия меню плагина файл конфигурации eclipse .project добавится следующим образом.И еще один файл конфигурации .externalToolBuilders / lstest [Builder] .launch будет создан.

<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);

Ответы [ 2 ]

0 голосов
/ 23 августа 2012

Для создания lstest.launch в папке .externalToolBuilders.Добавьте следующие строки перед вашими кодами

    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();

программно создайте ANT Builder

0 голосов
/ 29 ноября 2010

В меню нажмите «Выполнить / Внешние инструменты / Конфигурации внешних инструментов ...», где вы можете определить муравьиных бегунов, бегунов программ. С другой стороны, я не уверен, что вы можете прикрепить скрипт оболочки напрямую, но вызывать его из ant.

...