设置 Java 开发环境

本教程介绍如何为 Java 开发(包括开发在Google Cloud上运行的 Java 应用)准备本地机器。请按照以下步骤安装 Java 及相关工具。

目标

  • 安装 JDK(Java 开发工具包)。
  • 安装构建自动化工具。
  • 安装 gcloud CLI。
  • (可选)安装 IDE 或编辑器。
  • (可选)安装 IDE Google Cloud 插件。
  • 安装 Java 版 Cloud 客户端库。
  • 设置身份验证。

安装 JDK(Java 开发工具包)

您可以选择任意 Java 发行版,但必须确保设置以下环境变量:

  • JAVA_HOME:指向 JDK 安装的基础。
  • PATH:包含 $JAVA_HOME/bin

Eclipse Temurin 是建议与Google Cloud搭配使用的 OpenJDK(Java 开发工具包)发行版。Temurin 采用开源许可,通过了 Java SE TCK 认证,并经过测试,可确保生产质量的性能和安全性。

Temurin 的安装说明因操作系统而异。

如果您使用的是 Compute Engine 启动映像,则可以使用以下安装脚本。

CentOS/RHEL/Rocky

  1. 确定 CentOS/RHEL/Rocky Linux 的主要版本:
    eval "$(grep VERSION_ID /etc/os-release)"
    eval "$(grep ^ID= /etc/os-release)"
    OLD_IFS=$IFS
    IFS='.'
    read -ra split_version <<< "$VERSION_ID"
    IFS=$OLD_IFS
    MAJOR_VERSION=$split_version
  2. 创建 Adoptium 源代码库文件 `/etc/yum.repos.d/adoptium.repo`:
    sudo tee /etc/yum.repos.d/adoptium.repo << EOM
    [Adoptium]
    name=Adoptium
    baseurl=https://packages.adoptium.net/artifactory/rpm/$ID/$MAJOR_VERSION/\$basearch
    enabled=1
    gpgcheck=1
    gpgkey=https://packages.adoptium.net/artifactory/api/gpg/key/public
    EOM
  3. 更新软件包列表:
    sudo yum update -y
  4. 安装 Temurin:
    sudo yum install -y temurin-17-jdk
  5. 验证安装:
    java -version

Debian/Ubuntu

  1. 安装公共代码库 GPG 密钥。如果您使用的是 Ubuntu 16.4,请在保存到文件之前通过 gpg --dearmor 传递密钥。(例如:sudo wget ... | gpg --dearmor | sudo tee ...
    sudo mkdir -p /etc/apt/keyrings
    sudo wget -O - https://packages.adoptium.net/artifactory/api/gpg/key/public |
      sudo tee /etc/apt/keyrings/adoptium.asc
  2. 确定 Linux 发行版的名称,并创建源列表文件 /etc/apt/sources.list.d/adoptium.list
    eval "$(grep VERSION_CODENAME /etc/os-release)"
    sudo tee /etc/apt/sources.list.d/adoptium.list << EOM
    deb [signed-by=/etc/apt/keyrings/adoptium.asc] https://packages.adoptium.net/artifactory/deb $VERSION_CODENAME main
    EOM
  3. 更新软件包列表:
    sudo apt update -y
  4. 安装 Temurin:
    sudo apt install -y temurin-17-jdk
  5. 验证安装:
    java -version

SLES

  1. 确定 SLES 的主要版本:
    eval "$(grep VERSION_ID /etc/os-release)"
    OLD_IFS=$IFS
    IFS='.'
    read -ra split_version <<< "$VERSION_ID"
    IFS=$OLD_IFS
    MAJOR_VERSION=$split_version
  2. 安装公共代码库 GPG 密钥:
    sudo mkdir -p /etc/zypp/keyrings
    sudo wget -O - https://packages.adoptium.net/artifactory/api/gpg/key/public |
      sudo tee /etc/zypp/keyrings/adoptium.asc
    sudo rpm --import /etc/zypp/keyrings/adoptium.asc
  3. 确定 SLES 的版本,并注册 Adoptium 代码库:
    sudo zypper ar -f "https://packages.adoptium.net/artifactory/rpm/sles/$MAJOR_VERSION/$(uname -m)" adoptium
  4. 更新软件包列表:
    sudo zypper update -y
  5. 安装 Temurin:
    sudo zypper install -y temurin-17-jdk
  6. 验证安装:
    java -version

Windows

如需安装 Temurin,请以管理员身份运行 PowerShell 3.0 版或更高版本,并执行以下命令。

  1. 下载 Temurin。以下说明中的 Invoke-WebRequest 命令要求使用 PowerShell 3.0 或更高版本。
    $JdkVersion = 17
    $JdkUrl = "https://api.adoptium.net/v3/binary/latest/$JdkVersion/ga/windows/x64/jdk/hotspot/normal/eclipse?project=jdk"
    $JdkExtractionPath = "C:\temurin-$JdkVersion-jdk"
    $JdkDownload = "$JdkExtractionPath.zip"
    [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.SecurityProtocolType]'Tls12'
    Invoke-WebRequest -Uri $JdkUrl -OutFile $JdkDownload
    Expand-Archive $JdkDownload -DestinationPath $JdkExtractionPath -Force
  2. 设置 JAVA_HOMEPath 变量:
    pushd $JdkExtractionPath
    $JdkPath = (Get-ChildItem).FullName
    popd
    [System.Environment]::SetEnvironmentVariable('JAVA_HOME', $JdkPath, 'Machine')
    
          
  3. (Optional) Refresh your session's `$env:Path` value. Otherwise, start a new session:
    $MachinePath = [System.Environment]::GetEnvironmentVariable('Path', 'Machine')
    $UserPath = [System.Environment]::GetEnvironmentVariable('Path', 'User')
    $env:Path = "$MachinePath;$UserPath"
  4. 验证安装:
    java -version

安装构建自动化工具

Apache MavenGradleSBT 是软件包管理选项,可帮助快速且一致地跨平台构建 Java 应用依赖项。

安装 gcloud CLI

gcloud CLI 是一套适用于 Google Cloud的工具。它包含 gcloudbq,可用于通过命令行访问 Compute Engine、Cloud Storage、BigQuery 以及其他产品和服务。这些工具既能以交互方式使用,也可以在自动化脚本中运行。

(可选)安装 IDE 或编辑器

用于开发 Java 应用的热门编辑器(排名不分先后)包括但不限于:

这些编辑器(有时借助于插件)可为您提供从语法突出显示、智能感知、代码补全到完全集成式调试功能的所有能力。

(可选)安装 IDE 插件

如需访问编辑器中的有用功能,请查看以下插件:

安装 Java 版 Cloud 客户端库

使用 Java 版 Cloud 客户端库与 Google Cloud服务(例如 Datastore 和 Cloud Storage)集成。您可以为个别 API 安装软件包(如 BigQuery),如以下示例所示。

如果您使用的是 Maven,请将以下代码添加到您的 pom.xml 文件中。如需详细了解 BOM,请参阅 Google Cloud Platform 库 BOM

<!--  Using libraries-bom to manage versions.
See https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/The-Google-Cloud-Platform-Libraries-BOM -->
<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>com.google.cloud</groupId>
      <artifactId>libraries-bom</artifactId>
      <version>26.62.0</version>
      <type>pom</type>
      <scope>import</scope>
    </dependency>
  </dependencies>
</dependencyManagement>

<dependencies>
  <dependency>
    <groupId>com.google.cloud</groupId>
    <artifactId>google-cloud-bigquery</artifactId>
  </dependency>
</dependencies>

如果您使用的是 Gradle,请将以下代码添加到您的依赖项中:

implementation platform('com.google.cloud:libraries-bom:26.45.0')

implementation 'com.google.cloud:google-cloud-bigquery'

如果您使用的是 sbt,请将以下代码添加到您的依赖项中:

libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.42.2"

如果您使用的是 Visual Studio Code 或 IntelliJ,可以通过以下 IDE 插件将客户端库添加到您的项目中:

上述插件还提供其他功能,例如服务账号密钥管理。如需了解详情,请参阅各个插件相应的文档。

设置身份验证

要运行客户端库,您必须先设置身份验证。

如果您使用的是本地 shell,请为您的用户账号创建本地身份验证凭证:

gcloud auth application-default login

如果您使用的是 Cloud Shell,则无需执行此操作。

如果系统返回身份验证错误,并且您使用的是外部身份提供方 (IdP),请确认您已 使用联合身份登录 gcloud CLI

如需了解详情,请参阅使用客户端库时进行身份验证

使用客户端库

// Imports the Google Cloud client library
import com.google.cloud.bigquery.BigQuery;
import com.google.cloud.bigquery.BigQueryOptions;
import com.google.cloud.bigquery.Dataset;
import com.google.cloud.bigquery.DatasetInfo;

public class QuickstartSample {
  public static void main(String... args) throws Exception {
    // Instantiate a client. If you don't specify credentials when constructing a client, the
    // client library will look for credentials in the environment, such as the
    // GOOGLE_APPLICATION_CREDENTIALS environment variable.
    BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService();

    // The name for the new dataset
    String datasetName = "my_new_dataset";

    // Prepares a new dataset
    Dataset dataset = null;
    DatasetInfo datasetInfo = DatasetInfo.newBuilder(datasetName).build();

    // Creates the dataset
    dataset = bigquery.create(datasetInfo);

    System.out.printf("Dataset %s created.%n", dataset.getDatasetId().getDataset());
  }
}

为客户端库配置端点

如果您使用的 API 支持区域端点,请使用端点来配置要向哪个服务器发送请求。例如,使用 Google.Cloud.Dataproc.V1 API 时,您可以配置客户端端点。如需详细了解 Dataproc 的区域级端点,请点击此处。请务必将以下示例中的 MY-PROJECT 替换为您的项目名称,并将 us-central1 替换为适合您配置的区域:

ClusterControllerSettings settings =
     ClusterControllerSettings.newBuilder()
        .setEndpoint("us-central1-dataproc.googleapis.com:443")
        .build();
 try (ClusterControllerClient clusterControllerClient = ClusterControllerClient.create(settings)) {
   String projectId = "MY-PROJECT";
   String region = "us-central1";
   Cluster cluster = Cluster.newBuilder().build();
 }

后续步骤

(可选)为 App Engine 使用 Maven 或 Gradle 插件

如果您在 App Engine 标准或柔性环境中开发,可以使用 Apache Maven 和 Gradle 构建工具的插件,这些插件为直接开发、测试和部署应用提供了便捷的功能。

针对 App Engine 标准环境

在 App Engine 标准环境中使用 Maven App Engine PluginGradle 插件

针对 App Engine 柔性环境

在 App Engine 柔性环境中使用 Maven App Engine 插件Gradle 插件

其他资源