我尝试通过首先通过IProject创建java项目然后使用IFacetedProject将其转换为动态Web项目来创建动态Web项目,但是只创建了静态项目...这是我已经完成的代码...请帮助我这......谢谢.
IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
IProject project = root.getProject("TESTJDT");
try
{
project.create(null);
project.open(null);
IProjectDescription description = project.getDescription();
description.setNatureIds(new String[] { JavaCore.NATURE_ID });
project.setDescription(description, null);
IJavaProject javaProject = JavaCore.create(project);
IClasspathEntry[] buildPath = {
JavaCore.newSourceEntry(project.getFullPath().append("src")),
JavaRuntime.getDefaultJREContainerEntry() };
javaProject.setRawClasspath(buildPath,project.getFullPath().append(
"bin"), null);
IFolder folder = project.getFolder("src");
folder.create(true, true, null);
IPackageFragmentRoot srcFolder = javaProject.getPackageFragmentRoot(folder);
IPackageFragment fragment = srcFolder.createPackageFragment("com.programcreek", true, null);
String str = "package com.programcreek;" + "\n"
+ "public class Test {" + "\n" + " private String name;"+ "\n" + "}";
ICompilationUnit cu = fragment.createCompilationUnit("Test.java", str,false, null);
IType type = cu.getType("Test");
type.createField("private String age;", null, true, null);
IFacetedProject facetedProject =
ProjectFacetsManager.create(project, true, null);
IProjectDescription description1 = project.getDescription();
description1.setNatureIds(new String[]
{"org.eclipse.jem.workbench.JavaEMFNature",
"org.eclipse.jdt.core.javanature",
"org.eclipse.wst.common.project.facet.core.nature",
"org.eclipse.wst.common.modulecore.ModuleCoreNature",
"org.eclipse.wst.jsdt.core.jsNature"});
project.setDescription(description1, null);
IProjectFacet wstWebFacet = ProjectFacetsManager.getProjectFacet
(IModuleConstants.WST_WEB_MODULE);
facetedProject.installProjectFacet
(wstWebFacet.getDefaultVersion(), null, null);
Run Code Online (Sandbox Code Playgroud)
尝试这个方法:
public static IProject getWebDataModel(String projName, boolean createDD) throws ExecutionException{
IDataModel dm = DataModelFactory.createDataModel(new SimpleWebFacetProjectCreationDataModelProvider());
dm.setProperty(IFacetProjectCreationDataModelProperties.FACET_PROJECT_NAME, projName);
FacetDataModelMap facetMap = (FacetDataModelMap) dm.getProperty(IFacetProjectCreationDataModelProperties.FACET_DM_MAP);
IDataModel facetModel = facetMap.getFacetDataModel(IJ2EEFacetConstants.DYNAMIC_WEB);
facetModel.setProperty(IFacetDataModelProperties.FACET_VERSION, JavaEEFacetConstants.WEB_25);
facetModel.setBooleanProperty(IJ2EEFacetInstallDataModelProperties.GENERATE_DD, createDD);
IDataModel javaFacetModel = facetMap.getFacetDataModel(IJ2EEFacetConstants.JAVA);
javaFacetModel.setProperty(IFacetDataModelProperties.FACET_VERSION, JavaEEFacetConstants.JAVA_5);
IStatus st = dm.getDefaultOperation().execute(new NullProgressMonitor(), null);
return st.isOK() ? ResourcesPlugin.getWorkspace().getRoot().getProject(projName) : null;
}
Run Code Online (Sandbox Code Playgroud)
WebFacetProjectCreationDataModelProvider如果SimpleWebFacetProjectCreationDataModelProvider您不介意使用非公共 API,您也可以使用受限类。
| 归档时间: |
|
| 查看次数: |
1142 次 |
| 最近记录: |