Jan*_*uba 7 eclipse classpath eclipse-jdt
我正在开发用于out 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);
Run Code Online (Sandbox Code Playgroud)
但是这段代码不起作用,它说: 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);
Run Code Online (Sandbox Code Playgroud)
这将为.classpath文件添加源条目: