如何使用Eclipse插件项目以编程方式调用maven构建?

时间:2014-11-06 12:41:18

标签: eclipse-plugin m2e eclipse-jdt

我目前正在编写一个Eclipse插件,允许用户使用已包含的一些模板Java代码创建Maven项目。

我正在尝试为mvn clean buildmvn clean deploy项目设置一些自定义控件。到目前为止,我有一个自定义包自定义部署 IHandler绑定到一些菜单贡献。他们使用 Maven Invoker 来构建如下:

MessageConsole console = ...
console.clearConsole();
console.activate();

MessageConsoleStream consoleOut = console.newMessageStream();
consoleOut.setActivateOnWrite(true);

try (
    PrintStream stdout = new PrintStream(consoleOut, true))
{
    // Invoke Maven
    InvocationRequest request = new DefaultInvocationRequest();
    request.setPomFile(new File(project.getFile("pom.xml").getLocation().toOSString()));
    request.setGoals(Arrays.asList(goals));

    Invoker invoker = new DefaultInvoker();
    invoker.setOutputHandler(new PrintStreamHandler(stdout, true));
    invoker.execute(request);
} catch (MavenInvocationException e) {
    ...
}

这在我的Windows 7环境中运行良好,但是当我在Mac环境中测试它时遇到了一些问题,即没有打印到控制台并要求 M2_HOME必须设置。还有其他小问题,我真的觉得我正在重新发明轮子,我应该能够利用Eclipse现有的m2e功能。

所以我开始研究ILaunchConfigurationDelegate并找到了MavenLaunchDelegate类。它有限制警告,但我并不担心。我还发现了ExecutePomAction,它引出了非常熟悉的Maven Build运行配置面板,但我想使用自己的自定义快捷方式。

我希望只用一个选项编写我自己的ILaunchShortcut package deploy ,并从这个快捷方式和我的快捷方式调用适当的Maven构建自定义处理程序。问题是...... 我迷失了

我正在寻找关于从Eclipse插件以编程方式调用maven构建的最佳方式的建议或资源

0 个答案:

没有答案