如何从另一个插件初始化的类路径容器中删除类路径条目?

时间:2012-08-20 11:42:44

标签: eclipse eclipse-pde

我想修改由另一个插件初始化的类路径容器。具体来说,我想在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重新启动时看起来很丑陋。

是否有更无缝的方法可以从类路径容器中删除类路径条目,而不必删除整个类路径容器并替换它?

0 个答案:

没有答案