我想修改由另一个插件初始化的类路径容器。具体来说,我想在Eclipse Android开发工具插件(ADT)初始化的“Android Dependencies”类路径容器中过滤/删除某些类路径条目。
目前我正在“修改”内容,方法是创建一个新的类路径容器,从原来的Android类路径容器中复制我感兴趣的条目,然后删除原始文件:
final IPath path = new Path(AdtConstants.CONTAINER_LIBRARIES);
IClasspathContainer container = findClasspathContainer(classpath, path, project);
MavenLibrariesClasspathContainer newContainer = new MavenLibrariesClasspathContainer("Android Dependencies", path);
for(IClasspathEntry entry : container.getClasspathEntries()) {
if(!entry.getPath().toOSString().contains(File.separator + "libs" + File.separator)) {
newContainer.addClasspathEntry(entry);
}
}
classpath.removeEntry(path);
JavaCore.setClasspathContainer(
new Path("me.gladwell.eclipse.m2e.android.LIBRARIES"),
new IJavaProject[] { project },
new IClasspathContainer[] { newContainer },
new NullProgressMonitor()
);
然而,这是错误的,导致Eclipse工作区被(暂时)破坏,并且在Eclipse重新启动时看起来很丑陋。
是否有更无缝的方法可以从类路径容器中删除类路径条目,而不必删除整个类路径容器并替换它?