Я получил это сработало, наконец.Таким образом, мы можем выбрать список желаний веб- и Java-проектов, которые будут добавлены программно в один или несколько EAR-проектов.
public void createEARProject (IProject iEARProj, IProject iWebProj, монитор IProgressMonitor) выбрасывает ExecutionException, CoreException {
IProjectDescription earProjectDesription = ResourcesPlugin.getWorkspace (). )NjectEAR ().;iEARProj.create (earProjectDesription, монитор);iEARProj.open (monitor);
final IFacetedProject earFacetedProject = ProjectFacetsManager.create (iEARProj, true, monitor);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 ()); * +1008 *
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 (FacetInstallDataModelPlayer_EEFFF_EFF_FD_TF), монитор);earFacetedProject.setFixedProjectFacets (Collections.singleton (EARFacetUtils.EAR_FACET));
}
Надеюсь, это поможет, если кто-нибудь попробует так, как я пытался.