1

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

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

4

0 回答 0