依赖包(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 文件里,所有项目都可以访问。

更多信息可以查看文档 Librariesopen in new window

访问Libraries和Jars

com.intellij.openapi.roots.librariesopen in new window 包下面的类提供了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的列表

使用 LibraryTableopen in new window 可以管理应用和项目的libraries。

LibraryTablesRegistrar.getLibraryTable()open in new window 可以访问 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

...

上次编辑于:
贡献者: zhaojingbo
Loading...