您当前的位置:首页 > 计算机 > 编程开发 > Java

Guava 用于 Java 的 Google 核心库

时间:12-14来源:作者:点击数:

Guava 是一组来自 Google 的核心 Java 库,其中包括新的集合类型(例如 multimap 和 multiset)、不可变集合、图形库以及用于并发、I/O、散列、缓存、原语、字符串等的实用程序!它广泛用于 Google 内部的大多数 Java 项目,也被许多其他公司广泛使用。

Guava 有两种版本:

  • JRE 风格需要 JDK 1.8 或更高版本。
  • 如果您需要对 JDK 1.7 或 Android 的支持,请使用 Android 风格。您可以在 android目录中( github /google/guava/tree/master/android) 找到 Android Guava 源代码。

将 Guava 添加到您的构建中

Guava 的 Maven 组 ID 是com.google.guava,其工件 ID 是guava。Guava 提供了两种不同的“风格”:一种用于(Java 8+)JRE,一种用于 Android 或 Java 7 或任何想要与其中任何一种兼容的库。这些风格在 Maven 版本字段中指定为30.1.1-jre30.1.1-android。有关依赖 Guava 的更多信息,请参阅 在构建中使用 Guava( github /google/guava/wiki/UseGuavaInYourBuild)。

要使用 Maven 添加对 Guava 的依赖,请使用以下命令:

<dependency>
  <groupId>com.google.guava</groupId>
  <artifactId>guava</artifactId>
  <version>30.1.1-jre</version>
  <!-- or, for Android: -->
  <version>30.1.1-android</version>
</dependency>

使用 Gradle 添加依赖项:

dependencies {
  // Pick one:

  // 1. Use Guava in your implementation only:
  implementation("com.google.guava:guava:30.1.1-jre")

  // 2. Use Guava types in your public API:
  api("com.google.guava:guava:30.1.1-jre")

  // 3. Android - Use Guava in your implementation only:
  implementation("com.google.guava:guava:30.1.1-android")

  // 4. Android - Use Guava types in your public API:
  api("com.google.guava:guava:30.1.1-android")
}

有关何时使用 api 以及何时使用的更多信息 implementation,请参阅 有关 API 和实现分离( docs.gradle 组织网/current/userguide/java_library_plugin.html#sec:java_library_separation) 的 Gradle 文档( docs.gradle 组织网/current/userguide/java_library_plugin.html#sec:java_library_separation)。

文档

从 master 分支构建的 Guava 快照可通过 Maven 使用 version HEAD-jre-SNAPSHOT 或 HEAD-android-SNAPSHOT Android 风格获得。

  • 快照 API 文档:Guava( guava dev/releases/snapshot-jre/api/docs/)
  • 快照 API 差异:Guava( guava dev/releases/snapshot-jre/api/diffs/)

了解Guava

  • 我们的用户指南,Guava解释( github /google/guava/wiki/Home)
  • 其他有用链接的 不错集合( www.tfnico 商业网/presentations/google-guava)

链接

  • GitHub 项目( github /google/guava)
  • 问题跟踪器:报告缺陷或功能请求( github /google/guava/issues/new)
  • StackOverflow:询问“操作方法”和“为什么不起作用”的问题( stackoverflow 商业网/questions/ask?tags=guava+java)
  • guava-announce:发布和即将发生的重大变化的公告( groups.google 商业网/group/guava-announce)
  • Guava 讨论:开放式问题和讨论( groups.google 商业网/group/guava-discuss)

重要警告

  1. @Beta 在类或方法级别用注解标记的 API可能会发生变化。它们可以随时以任何方式修改,甚至删除。如果您的代码本身就是一个库(即,它在您自己控制之外的用户的 CLASSPATH 上使用),则除非您 重新打包( github /google/guava/wiki/UseGuavaInYourBuild#what-if-i-want-to-use-beta-apis-from-a-library-that-people-use-as-a-dependency) 它们,否则不应使用 beta API 。如果您的代码是库,我们强烈建议您使用 Guava Beta Checker( github /google/guava-beta-checker) 以确保您不使用任何 @Beta API!
  2. 没有的 API@Beta将在无限期的未来保持二进制兼容。(以前,我们有时会在弃用期后删除此类 API。删除非@BetaAPI的最后一个版本是 Guava 21.0。)即使 @DeprecatedAPI 也会保留(同样,除非它们是@Beta)。我们没有计划再次开始删除内容,但正式地,我们将保留我们的选项,以防万一(例如,严重的安全问题)。
  3. Guava 有一个在运行时链接所需的依赖项: com.google.guava:failureaccess:1.0.1。它还具有 一些仅注释依赖项( github /google/guava/wiki/UseGuavaInYourBuild#what-about-guavas-own-dependencies),我们在该链接中更详细地讨论了这些 依赖项( github /google/guava/wiki/UseGuavaInYourBuild#what-about-guavas-own-dependencies)。
  4. 除非另有说明,所有对象的序列化形式可能会发生变化。不要坚持这些,并假设它们可以被库的未来版本读取。
  5. 我们的类并非旨在防止恶意调用者。您不应将它们用于受信任和不受信任代码之间的通信。
  6. 对于主线风格,我们在 Linux 上仅使用 OpenJDK 8 和 OpenJDK 11 测试库。某些功能,尤其是 com.google.common.io 中的功能,在其他环境中可能无法正常工作。对于 Android 风格,我们的单元测试也在 API 级别 15(Ice Cream Sandwich)上运行。

gitee 地址:gitee /mirrors/guava

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门
本栏推荐