Java-Anwendungen erstellen

Auf dieser Seite wird erläutert, wie Sie mit Cloud Build Java-basierte Anwendungen erstellen und testen. Wenn Sie Cloud Build noch nicht kennen, lesen Sie die Cloud Build-Kurzanleitungen.

Hinweis

maven- oder gradle-Image verwenden

Sie können Cloud Build so konfigurieren, dass Java-Anwendungen mit dem maven-Image oder dem gradle-Image aus Docker Hub erstellt werden.

Zum Ausführen der Aufgaben im maven- oder gradle-Image geben Sie die URL des Images und die getaggte Version des Images im Feld name Ihrer Build-Konfigurationsdatei an. Wenn Sie das Image-Tag nicht angeben, verwendet Cloud Build standardmäßig das latest-Image. Cloud Build startet das in name angegebene Image mithilfe des Standardeinstiegspunkts des Images. Wenn Sie den Standardeinstiegspunkt überschreiben und maven oder gradle als Einstiegspunkt aufrufen möchten, geben Sie mvn oder gradle im Feld entrypoint an.

Die folgende Build-Konfigurationsdatei legt entrypoint für das maven- oder gradle-Image fest und gibt die Version des Build-Tools aus:

maven

  steps:
  - name: maven:3-jdk-8
    entrypoint: mvn
    args: ['--version']

gradle

  steps:
  - name: gradle:5.6.2-jdk8
    entrypoint: gradle
    args: ['--version']

Java-Builds konfigurieren

  1. Erstellen Sie im Stammverzeichnis des Projekts eine Build-Konfigurationsdatei mit dem Namen cloudbuild.yaml.

  2. Tests ausführen: maven und gradle stellen maven test und gradle test bereit. Dadurch werden die Abhängigkeiten heruntergeladen, die Anwendungen werden erstellt und alle in Ihrem Quellcode angegebenen Tests werden ausgeführt. Im Feld args eines Build-Schritts wird eine Liste von Argumenten abgerufen und an das Image übergeben, auf das im Feld name verwiesen wird.

    Fügen Sie in Ihrer Build-Konfigurationsdatei dem Feld args den Wert test hinzu, um test innerhalb von maven und gradle aufzurufen:

    maven

     steps:
     - name: maven:3-jdk-8
       entrypoint: mvn
       args: ['test']
    

    gradle

     steps:
     - name: gradle:5.6.2-jdk8
       entrypoint: gradle
       args: ['test']
    
  3. Anwendung verpacken: Geben Sie im Feld args den Befehl package an, um Ihre Anwendung in einer JAR-Datei für das maven-Image zu verpacken. Mit dem Befehl package wird in /workspace/target/ eine JAR-Datei erstellt.

    Geben Sie im Feld args den Befehl assemble ein, um Ihre Anwendung in einer JAR-Datei für das gradle-Image zu verpacken. Mit dem Befehl assemble wird in workspace/build/libs eine JAR-Datei erstellt.

    Mit dem folgenden Build-Schritt wird Ihre Java-Anwendung verpackt:

    maven

     steps:
     - name: maven:3-jdk-8
       entrypoint: mvn
       args: ['package','-Dmaven.test.skip=true']
    

    gradle

    steps:
    - name: gradle:5.6.2-jdk8
      entrypoint: gradle
      args: ['assemble']
    
  4. Anwendung containerisieren: Cloud Build stellt ein vordefiniertes Docker-Image bereit, mit dem Sie Ihre Java-Anwendung containerisieren können. So können Sie Ihre Java-Anwendung in der Build-Konfigurationsdatei containerisieren:

    • Fügen Sie das Feld name hinzu und geben Sie das vordefinierte Docker-Image an, das in Container Registry unter gcr.io/cloud-builders/docker gespeichert ist.
    • Fügen Sie das Feld args hinzu und geben Sie das Argument build, den Namen des zu erstellenden Container-Images und den Pfad zu Ihrem Build-Artefakt in --build-arg an.
    • Fügen Sie das Feld images hinzu, um das erstellte Image an Container Registry zu übergeben.

    Mit dem folgenden Build-Schritt wird Ihre Anwendung containerisiert und Ihr Image per Push an Container Registry übertragen:

    maven

    steps:
    - name: gcr.io/cloud-builders/docker
      args: ['build', '-t', 'gcr.io/project-id/image-name', '--build-arg=JAR_FILE=target/build-artifact', '.']
    images: ['gcr.io/project-id/image-name']
    

    gradle

    steps:
    - name: gcr.io/cloud-builders/docker
      args: ['build', '-t', 'gcr.io/project-id/image-name', '--build-arg=JAR_FILE=build/libs/build-artifact', '.']
    images: ['gcr.io/project-id/image-name']
    

    Wobei:

    • project-id ist die ID Ihres Cloud-Projekts.
    • image-name ist der Name Ihres Container-Images.
    • build-artifact ist der Name der JAR-Datei, die aus dem Build-Schritt erstellt wurde.
  5. Build starten: Wenn die Build-Konfigurationsdatei fertig erstellt ist, starten Sie den Build. Geben Sie dazu den folgenden Befehl in Ihr Terminal ein:

    gcloud builds submit --config config-file-path source-directory
    

    Wobei:

    • config-file-path ist der Pfad zu Ihrer Build-Konfigurationsdatei. In diesem Beispiel hat die Build-Konfigurationsdatei den Namen cloudbuild.yaml.
    • source-directory ist der Pfad oder die URL zu Ihrem Quellcode.

    Wenn Sie config-file-path und source-directory im Befehl gcloud builds submit nicht angeben, geht Cloud Build davon aus, dass sich die Konfigurationsdatei und der Quellcode im aktuellen Arbeitsverzeichnis befinden.

Codebeispiele

Hier sind einige Beispiel-Repositories, die Sie zum Erstellen von Java-Anwendungen verwenden können. Jede enthält eine Beispielanwendung und eine Build-Konfigurationsdatei, damit Sie die Anwendung erstellen und testen können:

  • maven-example: Eine Java-Anwendung und eine Beispiel-Build-Konfigurationsdatei, um die Anwendung mit mvn zu erstellen und zu testen.
  • gradle-example: Eine Java-Anwendung und eine Beispiel-Build-Konfigurationsdatei, um die Anwendung mit gradle zu erstellen und zu testen.

Nächste Schritte