我创建了一个动态Web项目。我想将此添加到耳朵项目中。我希望以编程方式创建此EAR项目,并为其添加一些其他方面,并将动态Web项目添加到该EAR。
我现在所做的是,创建一个Web项目并添加到属性下面以将其添加到EAR项目中。
iDataModel.setBooleanProperty(IWebFacetInstallDataModelProperties.ADD_TO_EAR ,TRUE);
这将使用默认设置创建EAR。但我不想要这个。我想创建EAR项目并为其添加更多IBM方面。所以我创建了如下的EAR。
IDataModel earModel = DataModelFactory.createDataModel(新 EARFacetProjectCreationDataModelProvider()); earModel.setProperty(IFacetDataModelProperties.FACET_PROJECT_NAME, projName); earModel.getDefaultOperation()。执行( monitor,null);
有了这个,我可以为这个EAR项目添加一些额外的方面。但我不知道如何将Web项目添加到此EAR。
如果有人遇到这种情况,请帮助我。
答案 0 :(得分:0)
我最终得到了这个。通过这种方式,我们可以选择要以编程方式添加到一个或多个EAR项目的Web和Java项目的愿望列表。
public void createEARProject(IProject iEARProj,IProject iWebProj, IProgressMonitor监视器)抛出 ExecutionException,CoreException {
IProjectDescription earProjectDesription = 。ResourcesPlugin.getWorkspace()newProjectDescription(iEARProj.getName()); iEARProj.create(earProjectDesription, 监控); iEARProj.open(监视器);
最终的IFacetedProject earFacetedProject = ProjectFacetsManager.create(iEARProj, 是的,监视器); IActionDefinition earInstallAction = EARFacetUtils.EAR_14.getActionDefinition(Collections.singleton(EARFacetUtils.EAR_14) IFacetedProject.Action.Type.INSTALL); IDataModel earConfig =(IDataModel) earInstallAction.createConfigObject(EARFacetUtils.EAR_14, iEARProj.getName());
earConfig.setProperty(IEarFacetInstallDataModelProperties.J2EE_PROJECTS_LIST, Arrays.asList(新 的IProject [] {iWebProj})); earConfig.setProperty(IEarFacetInstallDataModelProperties.JAVA_PROJECT_LIST, Collections.EMPTY_LIST); earConfig.setBooleanProperty(IFacetDataModelProperties.SHOULD_EXECUTE, Boolean.TRUE);
IDataModel master = DataModelFactory.createDataModel(新 EARFacetProjectCreationDataModelProvider()); master.setStringProperty(IFacetDataModelProperties.FACET_PROJECT_NAME, earConfig.getStringProperty(IFacetDataModelProperties.FACET_PROJECT_NAME)); master.setProperty(IFacetProjectCreationDataModelProperties.FACET_DM_MAP, Collections.singletonMap(EARFacetUtils.EAR_FACET.getId() earConfig)); master.setProperty(IFacetProjectCreationDataModelProperties.FACET_ACTION_MAP, Collections.EMPTY_MAP); master.setProperty(FacetProjectCreationDataModelProvider.REQUIRED_FACETS_COLLECTION, Collections.singletonList(EARFacetUtils.EAR_FACET));
earConfig.setProperty(FacetInstallDataModelProvider.MASTER_PROJECT_DM, 主);
earFacetedProject.installProjectFacet(EARFacetUtils.EAR_14, earConfig,monitor); earFacetedProject.setFixedProjectFacets(Collections.singleton(EARFacetUtils.EAR_FACET));
}
希望如果有人尝试我尝试的方式,这会有所帮助。