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-jre或30.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)
重要警告
- @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!
- 没有的 API@Beta将在无限期的未来保持二进制兼容。(以前,我们有时会在弃用期后删除此类 API。删除非@BetaAPI的最后一个版本是 Guava 21.0。)即使 @DeprecatedAPI 也会保留(同样,除非它们是@Beta)。我们没有计划再次开始删除内容,但正式地,我们将保留我们的选项,以防万一(例如,严重的安全问题)。
- 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)。
- 除非另有说明,所有对象的序列化形式可能会发生变化。不要坚持这些,并假设它们可以被库的未来版本读取。
- 我们的类并非旨在防止恶意调用者。您不应将它们用于受信任和不受信任代码之间的通信。
- 对于主线风格,我们在 Linux 上仅使用 OpenJDK 8 和 OpenJDK 11 测试库。某些功能,尤其是 com.google.common.io 中的功能,在其他环境中可能无法正常工作。对于 Android 风格,我们的单元测试也在 API 级别 15(Ice Cream Sandwich)上运行。
gitee 地址:gitee /mirrors/guava