依赖包(Library)
大约 1 分钟
依赖包(Library)
Library是Module依赖的jar包
Library分为3种类型:
- Module Library:只有当前Module可以访问,信息存在 .iml文件里
- Project Library:整个项目都可以访问,信息存在 .idea/libraries文件夹下面或 .ipr 文件里
- Global Library :存储在 $USER_HOME$/.IntelliJIdea/config/options/applicationLibraries.xml 文件里,所有项目都可以访问。
更多信息可以查看文档 Libraries
访问Libraries和Jars
com.intellij.openapi.roots.libraries 包下面的类提供了Libraries和Jars的相关操作类:
获取Module依赖的Library列表
final List<String> libraryNames = new ArrayList<String>();
ModuleRootManager.getInstance(module).orderEntries().forEachLibrary(library -> {
libraryNames.add(library.getName());
return true;
});
Messages.showInfoMessage(StringUtil.join(libraryNames, "\n"), "Libraries in Module");
获取所有Library的列表
使用 LibraryTable 可以管理应用和项目的libraries。
LibraryTablesRegistrar.getLibraryTable() 可以访问 application-level的libraries
LibraryTablesRegistrar.getLibraryTable(Project) 可以访问 project-level的libraries
如果你已经获取到了 LibraryTable 对象,可以直接调用它的 LibraryTable.getLibraries() 方法获取libraries列表
获取指定Module的Library列表
OrderEntryUtil.getModuleLibraries(ModuleRootManager.getInstance(module));
获取Library的根目录
StringBuilder roots = new StringBuilder("The " + lib.getName() + " library includes:\n");
roots.append("Sources:\n");
for (String each : lib.getUrls(OrderRootType.SOURCES)) {
roots.append(each).append("\n");
}
roots.append("Classes:\n");
for (String each : lib.getUrls(OrderRootType.CLASSES)) {
roots.append(each).append("\n");
}
Messages.showInfoMessage(roots.toString(), "Library Info");
创建Library
...
Loading...