我有一个IProject也是IJavaProject。我需要在工作区中找到引用此IProject的所有其他项目。
一种简单而低效的计算方法是遍历工作区中的所有项目并跟踪对当前项目的引用。像这样:
IProject currentProject = ...;
IProject[] allProjects = ResourcesPlugin.getWorkspace().getRoot().getProjects();
List<IProject> interestingProjects = ...;
for (IProject project : allProjects) {
if (refersToCurrentProject(project)) {
interestingProjects.add(project);
}
}
doSomething(interestingProjects);
注意 - 我没有编译这段代码而是从内存中编写代码,所以它可能无法正常工作,我只是想知道我想做什么。
另一种可能性是仅计算一次依赖关系,然后通过IResourceChangedListener更新依赖关系。但是,这也很混乱,我需要为此编写自己的(容易出错的)逻辑。
任何建议都将不胜感激。
答案 0 :(得分:1)
我知道当您右键单击特定项目时,有一个上下文菜单选项可以关闭不相关的项目。你看过那个吗?