java - 从 headless Eclipse 导出 war

标签 java eclipse ant eclipse-wtp

如何使用 Java 以编程方式从 Eclipse .web 项目导出 WAR 文件?

由于项目结构复杂,我在 war ant 任务中遇到了很大的问题( ProjectX.web 依赖于 ProjectX.java),我对此感到非常困惑 WebComponentExportWizard实现。

有可用的 WTP API 吗? (就像这个旧版本 http://www.eclipse.org/webtools/jst/components/j2ee/api/j2ee_operationsAPI.html )

最佳答案

经过一番激烈的斗争,我设法通过这种方法获取war文件:

@SuppressWarnings("restriction")
public static void exportWar(IProject webProject) throws CoreException {
    WebComponentExportDataModelProvider modelProvider = new WebComponentExportDataModelProvider();

    IDataModel dataModel = DataModelFactory.createDataModel(modelProvider);
    dataModel.setBooleanProperty(IJ2EEComponentExportDataModelProperties.EXPORT_SOURCE_FILES, false);
    dataModel.setBooleanProperty(IJ2EEComponentExportDataModelProperties.OVERWRITE_EXISTING, true);
    dataModel.setStringProperty(IJ2EEComponentExportDataModelProperties.PROJECT_NAME, webProject.getName());

    dataModel.setStringProperty(IJ2EEComponentExportDataModelProperties.ARCHIVE_DESTINATION, webProject
            .getLocation().append(webProject.getName()).addFileExtension("war").toOSString());
    dataModel.setProperty(
            IJ2EEComponentExportDataModelProperties.COMPONENT,
            ComponentCore.createComponent(webProject));

    IDataModelOperation modelOperation = dataModel.getDefaultOperation();
    try {
        log.debug("Start  the export war operation");
        modelOperation.execute(null, null);
    }
    catch (ExecutionException e) {
        log.error("Error when exporting .war project", e);
    }
}

关于java - 从 headless Eclipse 导出 war ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17172660/

相关文章:

java - 安装 jdk-8u121-macosx-x64 时无法识别图像

eclipse - Jersey、REST 和 web.xml 在 Eclipse 中运行时禁用@ServerEndpoint websocket

java - 导入 com.google.cloud.backend.R;丢失的

Java密封接口(interface)允许泛型类型: gradle complains, eclipse不允许

java - Ant中的echo目标描述

java - 将 XML 发送到服务器时出现 HTTP 500 错误

java - 如何使用 XPath 提取 XML 表数据

java - 使用gson解析json为java对象

eclipse - 如何在控制台参数中而不是在 Eclipse 中为 ANT 设置 JRE

java - 合并多个构建时代码覆盖率错误