我在eclipse中新增了一个插件,添加了一个新的项目条目,然后可以用来添加一个新的项目。eclipse插件>基于java的项目,如何
但是要项目属性,当我得到这个:
,而不是这样的:
所以,我的问题是,如何让我的项目还包括:所有的Java的东西(如:Java构建路径等),因为我想这个项目是基于默认的Java项目。
如何我想提出的项目正(代码):
@Override
public boolean performFinish()
{
if (project != null)
{
return true;
}
final IProject projectHandle = wizardPage.getProjectHandle();
URI projectURI = (!wizardPage.useDefaults()) ? wizardPage.getLocationURI() : null;
IWorkspace workspace = ResourcesPlugin.getWorkspace();
final IProjectDescription desc = workspace.newProjectDescription(projectHandle.getName());
desc.setLocationURI(projectURI);
WorkspaceModifyOperation op = new WorkspaceModifyOperation()
{
protected void execute(IProgressMonitor monitor) throws CoreException
{
createProject(desc, projectHandle, monitor);
}
};
try
{
getContainer().run(true, true, op);
}
catch (InterruptedException e)
{
return false;
}
catch (InvocationTargetException e)
{
Throwable realException = e.getTargetException();
MessageDialog.openError(getShell(), "Error", realException.getMessage());
return false;
}
project = projectHandle;
if (project == null)
{
return false;
}
BasicNewProjectResourceWizard.updatePerspective(config);
BasicNewProjectResourceWizard.selectAndReveal(project, workbench.getActiveWorkbenchWindow());
return true;
}
编辑***
确定,所以该解决方案是将面添加到项目中。如果我通过我的插件创建一个新项目后做这个手册 - 从右键单击,项目属性 - 它的作品。 如何添加这个方面programmaticaly?
编辑2 ***
好了,所以它是通过做:
description.setNatureIds
但并不完全。
这里是该项目的样子,当我手动添加的面给它(这是我希望它看起来):
,这是当我添加的性质如何,它实际上看起来ID “org.eclipse.jdt.core.javanature” programmaticaly(而不是如何我想它)
所以......如何解决呢?我需要另一种性质吗?
这里的项目文件内容时,我手动添加方面:
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>test</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.wst.common.project.facet.core.builder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>
也文件的.classpath被添加(手动添加小的时候,但是当它被添加programmaticaly没有这样的文件) :
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6">
<attributes>
<attribute name="owner.project.facets" value="java"/>
</attributes>
</classpathentry>
<classpathentry kind="output" path="bin"/>
</classpath>
这里也是我的方法的createProject():
private void createProject(IProjectDescription description, IProject proj, IProgressMonitor monitor)
throws CoreException, OperationCanceledException
{
try
{
monitor.beginTask("", 2000);
proj.create(description, new SubProgressMonitor(monitor, 10));
if (monitor.isCanceled())
{
throw new OperationCanceledException();
}
proj.open(IResource.BACKGROUND_REFRESH, new SubProgressMonitor(monitor, 10));
IContainer container = (IContainer) proj;
[ *** ]
}
finally
{
monitor.done();
}
}
的作品,但不完全,看到原来的问题(我把图像在那里;)更好的解释。 – b0x0rz
已将其添加到... – b0x0rz
当我从手动添加的facet项目复制文件.classpath到programmaticaly创建的一个,这会修复它,但现在的问题是如何将这些东西添加到.classpath programmaticaly中?我希望这将是解决此问题的最后一步:) – b0x0rz