以编程方式从Eclipse插件添加源文件夹



我正在为我们的maven插件开发m2e连接器,它实际上生成了一些源代码。我需要将生成的源代码(文件夹)添加到工作区作为源文件夹。

我使用JavaCore编辑。classpath文件:

    IJavaProject javaProject = JavaCore.create(proj);
    IClasspathEntry[] entries = javaProject.getRawClasspath();
    IClasspathEntry[] newEntries = new IClasspathEntry[entries.length + 1];
    System.arraycopy(entries, 0, newEntries, 0, entries.length);
    Path myPath = new Path("target/generated-sources");
    IClasspathEntry myEntry = JavaCore.newSourceEntry(myPath);
    newEntries[entries.length] = JavaCore.newSourceEntry(myEntry.getPath());
    javaProject.setRawClasspath(newEntries, null);

但是这段代码不起作用,它说: IClasspathEntry的路径必须是绝对的

如果我尝试使用绝对路径,它已经被写入。classpath,但在eclipse中它不显示为源文件夹。

有人有什么建议吗?这应该是件容易的事,但我想不出怎么解决。

问题解决了…这比我想象的要容易。

IJavaProject javaProject = JavaCore.create(proj);
IClasspathEntry[] entries = javaProject.getRawClasspath();
IClasspathEntry[] newEntries = new IClasspathEntry[entries.length + 1];
System.arraycopy(entries, 0, newEntries, 0, entries.length);
IPath srcPath= javaProject.getPath().append("target/generated-sources");
IClasspathEntry srcEntry= JavaCore.newSourceEntry(srcPath, null);
newEntries[entries.length] = JavaCore.newSourceEntry(srcEntry.getPath());
javaProject.setRawClasspath(newEntries, null);

这会将源条目添加到。类路径文件:

尝试JavaCore.newSourceEntry(...)方法之一,而不是JavaCore.newProjectEntry(...)

最新更新