Java 无头月食的出口战

Java 无头月食的出口战,java,eclipse,ant,eclipse-wtp,Java,Eclipse,Ant,Eclipse Wtp,如何使用Java以编程方式从Eclipse.web项目导出WAR文件 由于复杂的项目结构,我对WarAnt任务有很大的问题( ProjectX.web有一个来自ProjectX.java的依赖项,我对 WebComponentExportWizard实现 是否有任何WTP API可供使用?(就像这个旧版本)经过一番激烈的战斗后,我通过以下方法获得了战争文件: @SuppressWarnings("restriction") public static void exportWar(IProjec

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

由于复杂的项目结构,我对WarAnt任务有很大的问题( ProjectX.web有一个来自ProjectX.java的依赖项,我对 WebComponentExportWizard实现


是否有任何WTP API可供使用?(就像这个旧版本)

经过一番激烈的战斗后,我通过以下方法获得了战争文件:

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

我使用了如下类似的
org.eclipse.wst.server.core.util.PublishHelper.publishZip()
,它对我很有用

IPath-war=workDirectory.append(“app.war”);
PublishHelper PublishHelper=新的PublishHelper(空);
J2EEFlexProjDeployable可展开式=
新的J2EEFlexProjDeployable(project,ComponentCore.createComponent(project));
publishHelper.publishZip(deployable.members(),war,null);

Ilie Daniel Stefan,你能把所有必要的罐子放在某个地方下载吗?我正试图用您的代码实现这一点,但我无法从Eclipse导入必要的库。似乎Eclipse现在有不同的JAR,我无法让它工作。我再也没有这个项目的源代码了。这是一个非常老的问题(大约5年前),因此在当前的Eclipse版本中可能会有内部更改。我不知道我们是否在讨论同样的问题。我试图在没有eclipse的情况下生成war文件,我有多个项目需要包含在单个war文件中。