הגדרת סביבת פיתוח ב-Java

במדריך הזה נסביר איך להכין את המכונה המקומית לפיתוח ב-Java, כולל פיתוח אפליקציות Java שפועלות ב-Google Cloud. כדי להתקין את Java ואת הכלים הרלוונטיים, פועלים לפי השלבים הבאים:

מטרות

  • מתקינים JDK (ערכת פיתוח ל-Java).
  • מתקינים כלי לאוטומציה של גרסאות build.
  • מתקינים את ה-CLI של gcloud.
  • (אופציונלי) מתקינים סביבת פיתוח משולבת (IDE) או עורך.
  • (אופציונלי) מתקינים את הפלאגין של Google Cloud ל-IDE.
  • מתקינים את ספריות הלקוח של Cloud ל-Java.
  • מגדירים אימות.

התקנת JDK (ערכת פיתוח ל-Java)

אתם יכולים לבחור כל הפצת Java שתרצו, ולוודא שמשתני הסביבה הבאים מוגדרים:

  • ‫JAVA_HOME: מצביע על הבסיס של התקנת ה-JDK.
  • PATH: כולל את $JAVA_HOME/bin.

‫Eclipse Temurin היא ההפצה המומלצת של OpenJDK (ערכת פיתוח ל-Java) לשימוש עםGoogle Cloud. ‫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_HOME ו-Path:
    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

התקנת כלי לאוטומציה של גרסאות build

‫Apache Maven,‏ Gradle ו-SBT הן אפשרויות לניהול חבילות שיכולות לעזור לכם ליצור יחסי תלות של אפליקציות Java במהירות ובאופן עקבי בפלטפורמות שונות.

התקנת ה-CLI של gcloud

ה-CLI של gcloud הוא קבוצת כלים ל- Google Cloud. הוא מכיל את gcloud ו-bq, שבעזרתם אפשר לגשת ל-Compute Engine, ל-Cloud Storage, ל-BigQuery ולמוצרים ושירותים אחרים משורת הפקודה. אפשר להריץ את הכלים האלה באופן אינטראקטיבי או בסקריפטים אוטומטיים.

(אופציונלי) התקנה של סביבת פיתוח משולבת (IDE) או עורך

כלי עריכה פופולריים (בסדר אקראי) שמשמשים לפיתוח אפליקציות ב-Java כוללים, בין היתר:

העורכים האלה (לפעמים בעזרת פלאגינים) מספקים לכם הכול, החל מהדגשת תחביר, IntelliSense והשלמת קוד ועד ליכולות ניפוי באגים משולבות באופן מלא.

(אופציונלי) התקנת פלאגין של IDE

כדי לקבל גישה לפונקציות שימושיות בכלי העריכה, כדאי לבדוק את הפלאגינים הבאים:

התקנה של ספריות הלקוח של Cloud ל-Java

להשתמש בספריות הלקוח של Cloud ל-Java כדי לשלב עם שירותי 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:

באמצעות יישומי הפלאגין תוכלו להשתמש בפונקציות נוספות, כמו ניהול מפתחות לחשבונות שירות. לפרטים נוספים, קראו את מאמרי העזרה של כל אחד מיישומי הפלאגין.

מגדירים אימות

כדי להריץ את ספריית הלקוח, קודם צריך להגדיר אימות.

יוצרים פרטי כניסה לאימות מקומי בחשבון המשתמש:

gcloud auth application-default login

אם מופיעה שגיאת אימות, ודאו ש נכנסתם ל-CLI של gcloud באמצעות הזהות המאוחדת שלכם.

מידע נוסף זמין במאמר אימות לצורך שימוש בספריות לקוח.

שימוש בספריית הלקוח

// 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, אפשר להגדיר נקודת קצה (endpoint) של לקוח. כאן תוכלו לקרוא מידע נוסף על נקודות קצה אזוריות ב-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();
 }

(אופציונלי) ניראות (observability)

‫Google Cloud Observability כולל שירותי ניטור שעוזרים לכם להבין את ההתנהגות, התקינות והביצועים של אפליקציות Java. מידע נוסף מופיע במאמר Google Cloud Observability ל-Java.

המאמרים הבאים

(אופציונלי) שימוש בפלאגין של Maven או Gradle ל-App Engine

אם אתם מפתחים בסביבה הרגילה או הגמישה של App Engine, אתם יכולים להשתמש בפלאגינים לכלי ה-build של Apache Maven ו-Gradle, שמספקים פונקציות נוחות לפיתוח, לבדיקה ולפריסה של האפליקציות שלכם באופן ישיר.

בסביבות ברירת המחדל ב-App Engine

משתמשים ב-Maven App Engine plugin או ב-Gradle plugin לסביבות ברירת המחדל ב-App Engine.

בסביבות גמישות ב-App Engine

משתמשים ב-Maven App Engine plugin או ב-Gradle plugin לסביבות גמישות ב-App Engine.

יותר משאבים