CICS-Java-Anwendung ausführen- (3) Build-Management mit Gradle

Einführung

CICS TS V5.6 unterstützt neben Maven auch Gradle als Build-Management-Tool für CICS-Java-Anwendungen. Hier werden wir versuchen, die Verwaltung von CICS-Java-Anwendungen mit Gradle zu erstellen.

In Verbindung stehender Artikel

CICS-Java-Anwendung ausführen - (1) Einfache Beispiel-App ausführen CICS-Java-Anwendung ausführen - (2) Build-Verwaltung durch Maven CICS-Java-Anwendung ausführen - (3) Build-Verwaltung von Gradle CICS-Java-Anwendung ausführen - (4) Spring Boot-Anwendung

Vorbereitungen

Dies ist ähnlich wie bei Maven. (Verwenden Sie Gradle anstelle von Maven)

Geeignete Java EE-Entwicklungsumgebung

Bitte verwenden Sie Eclipse, VS-Code usw., mit denen Sie je nach Bedarf Java EE-Anwendungen entwickeln können. Da wir das Beispiel so verwenden, wie es diesmal ist, werden wir die Quelle nicht speziell bearbeiten, so dass wir es nicht verwenden müssen, aber normalerweise werden wir eine Art Entwicklungsumgebung verwenden. Es wäre schön, mit Gradle, Git usw. arbeiten zu können. Wenn Sie CICS Explorer zusammen verwenden möchten, können Sie Eclipse verwenden.

CICS Explorer

Dies ist ebenfalls nicht erforderlich, kann jedoch zum Überprüfen der Ressourcendefinition von CICS verwendet werden. Laden Sie ein Eclipse-basiertes Tool namens CICS Explorer herunter und richten Sie es ein, indem Sie auf die folgenden Bereiche verweisen. Referenz: CICS Explorer herunterladen und starten

Gradle

Installing Gradle

c:\>java -version
java version "1.8.0_144"
Java(TM) SE Runtime Environment (build 1.8.0_144-b01)
Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)

Releases

Entpacken Sie einfach das heruntergeladene und führen Sie es durch den Pfad. Voraussetzung ist Java 8 oder höher. Laden Sie die aktuellste Version von Gradle V6.5 von der folgenden Version herunter (gradle-6.5.zip). Extrahieren Sie es in ein geeignetes Verzeichnis. (Hier (c: \ x \ Gradle \ gradle-6.5 ) Fügen Sie Ihrem PFAD den Zielbehälter (C: \ x \ Gradle \ gradle-6.5 \ bin) hinzu.

c:\>gradle -v

------------------------------------------------------------
Gradle 6.5
------------------------------------------------------------

Build time:   2020-06-02 20:46:21 UTC
Revision:     a27f41e4ae5e8a41ab9b19f8dd6d86d7b384dad4

Kotlin:       1.3.72
Groovy:       2.5.11
Ant:          Apache Ant(TM) version 1.10.7 compiled on September 1 2019
JVM:          1.8.0_144 (Oracle Corporation 25.144-b01)
OS:           Windows 10 10.0 amd64

Das ist in Ordnung.

git

Wir werden das auf gitHub bereitgestellte Beispiel erhalten und verwenden, also installieren Sie auch git. Die Setup-Methode wird weggelassen, da sie herumliegt.

c:\>git --version
git version 2.21.0.windows.1

Ausführungsumgebung (z / OS, CICS)

Bereiten Sie eine CICS-Region vor, um das Beispiel auszuführen. Im Moment verwenden wir eine Region mit dem Namen ** CT56B4A1 ** unter CICSplex-Kontrolle. Fügen Sie eine Ressource namens JVMServer hinzu, um Java-Anwendungen auszuführen. Dieses Mal verwenden wir das Beispiel für CICS-Liberty (JavaEE-Anwendung). Erstellen Sie daher einen JVM-Server für Liberty.

JVM-Profil

Bereiten Sie das JVM-Profil auf USS vor. (Die mit JVMServer verbundenen Eigenschaften werden effektiv in der Datei auf dieser USS angegeben. Die JVMSERVER-Ressourcendefinition zeigt auf den Dateinamen dieses JVM-Profils.) Ein Beispiel wird mitgeliefert. Kopieren Sie es und verwenden Sie es.

Erstellen Sie ein Verzeichnis mit dem Namen / var / cicsts / cicsts56 / CT56B4A1 / JVMProfiles und kopieren Sie /usr/lpp/cicsts/cicsts56/JVMProfiles/DFHOSGI.jvmprofile (Beispieldefinition für OSGi im CCD-Installationsverzeichnis) dorthin. Machen. Passen Sie es an Ihre Umgebung an.

DFHWLP.jvmprofile Auszug


JAVA_HOME=/usr/lpp/java/J8.0_64/
WORK_DIR=/var/cicsts/cicsts56/CT56B4A1/work
WLP_INSTALL_DIR=/usr/lpp/cicsts/cicsts56/wlp
-Dcom.ibm.cics.jvmserver.wlp.autoconfigure=true
-Dcom.ibm.cics.jvmserver.wlp.server.host=*
-Dcom.ibm.cics.jvmserver.wlp.server.http.port=56441
-Dcom.ibm.cics.jvmserver.wlp.server.https.port=56451
-Xms128M
-Xmx256M
-Xmso1M
-Xgcpolicy:gencon
-Xscmx256M
-Xshareclasses:name=cicsts%g,groupAccess,nonfatal
-Xtune:virtualized
-Dcom.ibm.tools.attach.enable=no
-Dfile.encoding=ISO-8859-1
_BPXK_DISABLE_SHLIB=YES

SIT

Geben Sie im SIT-Parameter "JVMPROFILEDIR" das Verzeichnis an, in dem sich die obige Eigenschaftendatei befindet.

JVMPROFILEDIR=/var/cicsts/cicsts56/CT56B4A1/JVMProfiles 

Starten Sie die Region neu, damit die Änderungen wirksam werden.

JVM-Serverdefinition

Bereiten Sie die JVMSERVER-Ressourcendefinition vor. Kopieren Sie die JVMSERVER-Definition "DFHWLP" in der vom Produkt bereitgestellten DFH $ WLP-Gruppe in eine entsprechende Gruppe und installieren Sie sie.

OBJECT CHARACTERISTICS                                    CICS RELEASE = 0730
 CEDA  View JVmserver( DFHWLP   )                                            
  JVmserver      : DFHWLP                                                    
  Group          : TAGGRP                                                    
  DEScription    : CICS JVM server to run WLP samples                        
  Status         : Enabled            Enabled | Disabled                     
  Jvmprofile     : DFHWLP                                         (Mixed Case
  Lerunopts      : DFHAXRO                                                   
  Threadlimit    : 015                1-256                                  
 DEFINITION SIGNATURE                                                        
  DEFinetime     : 06/04/20 16:20:21                                         
  CHANGETime     : 06/04/20 16:20:21                                         
  CHANGEUsrid    : CICSUSER                                                  
  CHANGEAGEnt    : CSDApi             CSDApi | CSDBatch                      
  CHANGEAGRel    : 0730                                                                     

Es ist in Ordnung, wenn es unter CEMT I JVMSERVER aktiviert ist.

I JVMS                                             
STATUS:  RESULTS - OVERTYPE TO MODIFY              
 Jvm(DFHWLP  ) Ena     Prf(DFHWLP  ) Ler(DFHAXRO ) 
    Threadc(005) Threadl( 015 ) Cur(48314096)           

CICS Bundle Deployment API Sie müssen die CICS Bundle Deployment API eingerichtet haben, die in CICS TS V5.6 verfügbar ist. Diese Funktion wurde für die Anwendungsbereitstellung als eine der REST-basierten Verwaltungs-APIs namens CMCI hinzugefügt. Richten Sie CMCI auf dem WUI-Server ein, der die Ziel-CICS-Region verwaltet, und geben Sie in den Eigenschaften des CMCI-JVM-Servers die Parameter für die CICS-Bundle-Bereitstellungs-API an. Referenz: Funktionsweise: CICS-Bundle-Bereitstellungs-API

Die minimal erforderlichen Einstellungen sind wie folgt. Erstellen Sie auf USS ein Verzeichnis für die Platzierung von Bundle-Dateien. Hier ist es "/ var / cicsts / cicsts56 / bundles". Legen Sie die folgenden Parameter im JVM-Profil (EYUCMCIJ.jvmprofile) für den CMCI-JVM-Server der WUI fest. -Dcom.ibm.cics.jvmserver.cmci.bundles.dir=/var/cicsts/cicsts56/bundles

Beispielbetriebsprüfung

Lokales Klonen

Klonen Sie "https: // github.com / IBM / cics-bundle-gradle.git" in ein geeignetes Verzeichnis auf Ihrem lokalen PC.

C:\y\workspace\cicsts56>git clone https://github.com/IBM/cics-bundle-gradle.git
Cloning into 'cics-bundle-gradle'...
remote: Enumerating objects: 125, done.
remote: Counting objects: 100% (125/125), done.
remote: Compressing objects: 100% (87/87), done.
remote: Total 1855 (delta 43), reused 86 (delta 13), pack-reused 1730Receiving objects:  99% (1837/1855), 2.08 MiB | 2.01 MiB/s
Receiving objects: 100% (1855/1855), 4.19 MiB | 2.83 MiB/s, done.
Resolving deltas: 100% (610/610), done.

Grundlegendes zur Dateistruktur

Wir werden ein Beispiel namens gradle-multipart-sample unter samples verwenden. Verschieben Sie also das Verzeichnis und sehen Sie sich die Struktur der Datei an.

C:\y\workspace\cicsts56\cics-bundle-gradle\samples\gradle-multipart-sample>tree /f /a
Liste der Ordnerpfade:Volumen Windows
Die Seriennummer des Volumens lautet 1866-E2FC
C:.
|   build.gradle
|   gradlew
|   gradlew.bat
|   README.md
|   settings.gradle
|
+---gradle
|   \---wrapper
|           gradle-wrapper.jar
|           gradle-wrapper.properties
|
+---gradle-bundle-demo
|       build.gradle
|
\---gradle-war-demo
    |   build.gradle
    |
    \---src
        \---main
            +---java
            |   \---demo
            |           SimpleServlet.java
            |
            \---web-app
                |   index.html
                |   index.js
                |   style.css
                |
                +---images
                |       cics.png
                |
                \---WEB-INF
                        web.xml


Es gibt mehrere build.gradle und es hat eine hierarchische Struktur, die als "Multi-Projekt" von Gradle bezeichnet wird. Referenz: Grundlagen eines Multiprojekts mit Gradle

Normalerweise erstellen Sie beim Erstellen einer CICS-Java-App ein OSGi-Projekt (jar) oder Webprojekt (WAR), das den Hauptteil der App darstellt, erstellen Sie ein CICS-Bundle-Projekt, um die Anwendung zu organisieren, und stellen Sie sie als einzelnes Paket bereit. TU das. In diesem Beispiel entspricht der Gradle-War-Demo-Teil dem Projekt des Anwendungskörpers (WAR), und der Gradle-Bundle-Demo-Teil entspricht dem CICS-Bundle-Projekt. Um sie zusammenzufassen, wird der übergeordnete Teil als Multiprojekt verwendet Es ist im Gradle-Multipart-Sample-Projekt zusammengefasst. Die Beziehung zwischen build.gradle ist wie folgt. image.png

Es scheint, dass Sie die Beziehung des Projekts auch mit dem folgenden Befehl anzeigen können.

c:\y\workspace\cicsts56\cics-bundle-gradle\samples\gradle-multipart-sample>gradle -q projects

------------------------------------------------------------
Root project
------------------------------------------------------------

Root project 'gradle-multipart-sample'
+--- Project ':gradle-bundle-demo'
\--- Project ':gradle-war-demo'

To see a list of the tasks of a project, run gradle <project-path>:tasks
For example, try running gradle :gradle-bundle-demo-test04:tasks

Inhalt prüfen / bearbeiten

gradle-war-demo (javaEE app)

Dies ist eine Webanwendung, die auf CICS-Liberty ausgeführt werden soll. Es wird durch einfaches HTML und Servlet implementiert. (Es sieht aus wie die Maven-Probe)

SimpleServlet.java


package demo;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.ibm.cics.server.InvalidRequestException;
import com.ibm.cics.server.Task;

/**
 * Servlet implementation class SimpleServlet
 */
@WebServlet("/SimpleServlet")
public class SimpleServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setContentType("text/html");

        response.getWriter().print("Hello world!");
        Task task = Task.getTask();

        try {
            String userid = task.getUSERID();
            response.setContentType("text/html");
            response.getWriter().print("\nI am " + userid);
        } catch (InvalidRequestException e) {
            throw new RuntimeException(e);
        }
    }

}

Der Prozess besteht darin, das Objekt der eigenen Aufgabe zu erfassen, die in der Aufgabenklasse von JCICS ausgeführt wird, die Benutzerinformationen zu erfassen, die sich selbst daraus ausführen, und sie anzuzeigen.

Die App selbst muss nicht geändert werden. Überprüfen Sie daher einfach den Inhalt.

Gradle-Bundle-Demo (CICS-Bundle)

Normalerweise erstellen Sie beim Erstellen einer CICS-Java-App mit CICS Explorer (wenn Sie Gradle nicht verwenden) ein CICS-Bundle-Projekt und legen fest, welche Apps (WAR, OSGi usw.) darin enthalten sein sollen. Als Ergebnis werden Dateien wie cics.xml und xxx.warbundle erstellt.

Dies entspricht dem CICS-Bundle-Projekt, es ist jedoch nur build.gradle vorhanden. Durch die Angabe der Abhängigkeit mithilfe des Gradle-Mechanismus scheint das von CICS bereitgestellte Gradle-Plug-In (Cics-Bundle-Gradle) automatisch die für das CICS-Bundle-Projekt erforderlichen Dateien zu erstellen. Daher müssen Sie als Benutzer nur die erforderlichen Einstellungen in build.gradle vornehmen, und Sie müssen das CICS-Bundle-Projekt nicht direkt kennen.

Bearbeiten Sie build.gradle entsprechend Ihrer Umgebung. Änderungen sind in den Kommentaren (1) - (7) beschrieben.

gradle-bundle-demo-test04\build.gradle


plugins {
    id 'com.ibm.cics.bundle' version '1.0.0'
}

group 'com.ibm.cics'
version '1.0.0'

repositories {
    mavenCentral()
}

cicsBundle {
    build {
        defaultJVMServer = 'DFHWLP' // (1)JVMSERVER Name
    }
    deploy {
        cicsplex = 'C73PLX'         // (2)Der CICSplex-Name, zu dem die Ziel-CICS-Region gehört
        region   = 'CT56B4A1'       // (3)Name der Ziel-CICS-Region
        bunddef  = 'GRDBUNDL'       // (4)Name der Bundle-Definitionsressource, die in der Ziel-CICS-Region definiert ist
        csdgroup = 'TAGGRP'         // (5) (4)CSD-Gruppenname, zu dem die Bundle-Definition von
        url = 'http://etp1:56002'   // (6)WUI CMCI URL
        username = 'TAG'            // (7)Mit dem Benutzer, der bei der Ausgabe der Bereitstellungs-API durch CMCI verwendet wird
        password = '********'       //Passwort
        //caution: uncomment the line below to disable TLS/SSL checking for certificates
        //insecure = true
    }
}

dependencies {
    cicsBundlePart group: 'org.codehaus.cargo', name: 'simple-war', version: '1.7.7', ext: 'war'
    cicsBundlePart project(path:':gradle-war-demo', configuration: 'archives')
}

Jetzt habe ich den Verzeichnisnamen des Projekts für das CICS-Bundle von gradle-bundle-demo in gradle-bundle-demo-test04 geändert. Dieser Verzeichnisname wird als Verzeichnisname beim Übertragen von Produkten über USS verwendet. In dem Verzeichnis zum Anordnen des vom JVM-Server der WUI angegebenen Bundle-Verzeichnisses (hier "/ var / cicsts / cicsts56 / bundles") wird ein Verzeichnis mit dem Namen " _ " erstellt und verschiedene Dateien erstellt. Wird erweitert. Beispiel: / var / cicsts / cicsts56 / gradle-bundle-demo-test04_1.0.0 /

Andere Änderungsparameter sind wie folgt.

** (1) defaultjvmserver **: Geben Sie den Namen des JVMSERVER an, der die App ausführen soll. Es muss vorab in der CICS-Zielregion installiert werden. ** (2) cicsplex **: Der Name des CICSplex, zu dem die Ziel-CICS-Region gehört ** (3) Region **: Name der CICS-Zielregion ** (4) bundledef **: Name der Bundle-Definitionsressource, die in der Ziel-CICS-Region definiert ist ** (5) csdgroup **: CSD-Gruppenname, zu dem die Bundle-Definition von (5) gehört ** (6) url **: Geben Sie die CMCI-URL der WUI an. Die CICS Bundle Deployment API muss für diese WUI aktiviert sein. (Wenn es sich um eine Vorlage handelt, gibt es keine Beschreibung von "http: //". Wenn Sie dies jedoch nicht angeben, tritt ein Fehler auf. Seien Sie also vorsichtig!) ** (7) Benutzername / Kennwort **: Benutzer und Kennwort, die bei der Ausgabe der Bereitstellungs-API durch CMCI verwendet werden

Da wir das Projektverzeichnis umbenannt haben, werden wir die übergeordnete Einstellung.gradle entsprechend ändern.

setting.gradle


rootProject.name = 'gradle-multipart-sample'
include 'gradle-war-demo'
include 'gradle-bundle-demo-test04'

Erstellung der BUNDLE-Definition

Erstellen Sie eine Bundle-Definition gemäß dem in build.gradle oben angegebenen Inhalt.

OBJECT CHARACTERISTICS                                    CICS RELEASE = 0730
 CEDA  View Bundle( GRDBUNDL )                                               
  Bundle         : GRDBUNDL                                                  
  Group          : TAGGRP                                                    
  DEScription    : CICS-BUNDLE-DEMO                                          
  Status         : Enabled            Enabled | Disabled                     
  BUndledir      : /var/cicsts/cicsts56/bundles/gradle-bundle-demo-test04_1.0
  (Mixed Case)   : .0                                                        
                 :                                                           
                 :                                                           
                 :                                                           
  BAsescope      :                                                           
  (Mixed Case)   :                                                           
                 :                                                           
                 :                                                           
                 :                                                           
 DEFINITION SIGNATURE                                                        
  DEFinetime     : 06/17/20 14:19:33                                         

Die CSD-Gruppe wird angegeben (5), der Name der BUNDLE-Definition lautet (4) und BUNDLEDIR wird basierend auf dem Namen des Projektverzeichnisses und dem Wert der Versionsinformationen angegeben.

Probenänderung

Ich bin der Meinung, dass dies bald behoben wird, aber es gibt einen Fehler in der Verzeichnisstruktur des bereitgestellten Beispiels. Wenn die nachfolgende Verarbeitung so ausgeführt wird, wie sie ist, funktioniert das Beispiel nicht ordnungsgemäß. Es gibt ein Verzeichnis mit dem Namen "... \ gradle-multipart-sample \ gradle-war-demo \ src \ main \ web-app ", aber ändern Sie diese "Web-App" in "webapp". Lassen Sie uns (Bindestriche entfernen). Für den Betrieb des Gradle's War-Plug-Ins werden die Dateien unter der Webanwendung beim Erstellen einer WAR standardmäßig kopiert. Im Beispiel handelt es sich jedoch um eine Web-App, also web.xml und index.html in diesem Verzeichnis Usw. wird nicht kopiert und die Beispielanwendung kann nicht aufgerufen werden.

Referenz: Gradle - The War Plugin

The default behavior of the War task is to copy the content of src/main/webapp to the root of the archive. Your webapp directory may of course contain a WEB-INF sub-directory, which may contain a web.xml file. Your compiled classes are compiled to WEB-INF/classes. All the dependencies of the runtime [1] configuration are copied to WEB-INF/lib.

Ausführung erstellen / bereitstellen

Führen Sie zum Erstellen den folgenden Befehl im Verzeichnis gradle-multipart-sample aus. Zunächst dauert es einige Zeit, da die erforderlichen Pakete heruntergeladen werden.

c:\y\workspace\cicsts56\cics-bundle-gradle\samples\gradle-multipart-sample>gradlew build
Downloading https://services.gradle.org/distributions/gradle-5.0-all.zip
...........................................................................................................................

Welcome to Gradle 5.0!

Here are the highlights of this release:
 - Kotlin DSL 1.0
 - Task timeouts
 - Dependency alignment aka BOM support
 - Interactive `gradle init`

For more details see https://docs.gradle.org/5.0/release-notes.html

Starting a Gradle Daemon (subsequent builds will be faster)

> Task :gradle-bundle-demo-test04:buildCICSBundle
Adding Java-based bundle parts from 'cicsBundlePart' dependency configuration
Adding Java-based bundle part: 'C:\Users\TomohiroTaguchi\.gradle\caches\modules-2\files-2.1\org.codehaus.cargo\simple-war\1.7.7\5f462015066db63c2e240b4fc3674c6f4910bb73\simple-war-1.7.7.war'
Adding Java-based bundle part: 'C:\y\workspace\cicsts56\cics-bundle-gradle\samples\gradle-multipart-sample\gradle-war-demo\build\libs\gradle-war-demo-1.0.0.war'
Adding non-Java-based bundle parts from 'src/main/resources'

BUILD SUCCESSFUL in 1m 12s
4 actionable tasks: 4 executed

Das Projekt ist jetzt gebaut. Im Gradle-Bundle-Demo-Verzeichnis werden jede Datei des CICS-Bundle-Projekts und eine ZIP-Datei (zum Zeitpunkt der Bereitstellung verwendet) generiert, die sie zusammenfasst.

c:\y\workspace\cicsts56\cics-bundle-gradle\samples\gradle-multipart-sample>tree gradle-bundle-demo-test04 /f /a
Liste der Ordnerpfade:Volumen Windows
Die Seriennummer des Volumens lautet 1866-E2FC
C:\Y\WORKSPACE\CICSTS56\CICS-BUNDLE-GRADLE\SAMPLES\GRADLE-MULTIPART-SAMPLE\GRADLE-BUNDLE-DEMO-TEST04
|   build.gradle
|
\---build
    +---distributions
    |       gradle-bundle-demo-test04-1.0.0.zip
    |
    \---gradle-bundle-demo-test04-1.0.0
        |   gradle-war-demo-1.0.0.war
        |   gradle-war-demo-1.0.0.warbundle
        |   simple-war-1.7.7.war
        |   simple-war-1.7.7.warbundle
        |
        \---META-INF
                cics.xml

Führen Sie als Nächstes die Bereitstellungsarbeiten aus. Führen Sie den folgenden Befehl im Verzeichnis gradle-multipart-sample aus.

c:\y\workspace\cicsts56\cics-bundle-gradle\samples\gradle-multipart-sample>gradlew deployCICSBundle

> Task :gradle-bundle-demo-test04:deployCICSBundle
Task deployCICSBundle

BUILD SUCCESSFUL in 12s
5 actionable tasks: 1 executed, 4 up-to-date

Wenn Sie sich den Status von Bundles und gebündelten Teilen im CICS Explorer ansehen, können Sie feststellen, dass sie erfolgreich installiert und aktiviert wurden. image.png

Mit anderen Worten, der obige Gradle-Befehl hat die folgende Verarbeitung durchgeführt.

Build: JavaEE-App kompilieren (Gradle-War-Demo) / WAR erstellen, CICS-Bundle generieren (Gradle-Bundle-Demo) Paket: Verpackung verwandter Module Bereitstellen: Übertragen / Bereitstellen der CICS-Bundle-Datei an USS, Installieren der BUNDLE-Definition

App-Funktionsprüfung

Versuchen Sie, über Ihren Browser auf die auf Liberty bereitgestellte App zuzugreifen, die auf dem Ziel-CICS ausgeführt wird. image.png

Da es als Standardbenutzer "CICSUSER" ausgeführt wird, wird dieser Benutzername angezeigt.

Damit konnte ich bestätigen, dass die Anwendung ordnungsgemäß funktioniert!

Recommended Posts

CICS-Java-Anwendung ausführen- (3) Build-Management mit Gradle
CICS-Java-Anwendung ausführen- (2) Build-Management mit Maven
Erstellen und testen Sie Java + Gradle-Anwendungen mit Wercker
Erstellen eines Java-Projekts mit Gradle
Erster Gradle Build (Java)
Erstellen Sie Java mit Wercker
Erstellen Sie mit Gradle mit VSCode Java → Ausführen
Erstellen Sie mit Gradle ein Java-Multiprojekt
CICS-Java-Anwendung ausführen- (5) Verwenden Sie JCICSX
Verwandeln Sie Java-Anwendungen mit Jib ganz einfach in Docker
Erstellen Sie Java mit Mac vs Code
[Gradle] Erstellen Sie ein Java-Projekt mit einer Konfiguration, die von der Konvention abweicht
[Java] Erstellen Sie mit Gradle ein ausführbares Modul
Erstellen Sie OpenCV mit Java Wrapper unter Ubuntu 18.04
Einführung eines automatisierten Java-Tests mit JUnit 5 + Gradle
Erstellen Sie Java-Anwendungen mit IBM Cloud-Funktionen
Machen Sie die SpringBoot1.5 + Gradle4.4 + Java8 + Docker-Umgebung mit Java11 kompatibel
Einstellungen für Java-Management und STS (Eclipse) -Erstellungspfade
Vagabund Java bauen
[Gradle] Build-Vorgänge, die häufig in Java-Projekten ausgeführt werden
Führen Sie eine statische Code-Analyse mit Checkstyle mit Java + Gradle durch
Führen Sie die Scala-Anwendung mit Spring Boot über Gradle aus
Erstellen Sie Java x Spring x VSCode x Gradle auf Docker (1)
Erstellen Sie eine E2E-Testumgebung mit Selenium (Java).
Erstellen Sie mit Gradle Spring Boot-Projekte nach Umgebung
Erstellen Sie eine Java-Entwicklungsumgebung mit VS Code
Erstellen Sie eine Java-Entwicklungsumgebung mit VS Code auf dem Mac
Erstellen Sie die VS Code + WSL + Java + Gradle-Umgebung von Grund auf neu
So erstellen Sie eine Docker-Umgebung mit Gradle for IntelliJ
So erstellen Sie eine Java-Entwicklungsumgebung mit VS Code
Überprüfen Sie die Abdeckung mit Codecov in der Java + Gradle + Wercker-Konfiguration
Erstellen Sie eine Java-Programmentwicklungsumgebung mit Visual Studio Code
Installieren Sie Java mit Homebrew
Verwenden Sie ProGuard mit Gradle
Integrationstest mit Gradle
Wechseln Sie die Plätze mit Java
[Java] Paket für die Verwaltung
Baue Doma1 mit Ant
Bequemer Download mit JAVA
Java baut ein Dreieck
Installieren Sie Gradle auf ubuntu16.04
Schalten Sie Java mit direnv
Datenkern beginnend mit Gradle
Baue Growai mit Centos7
Java-Download mit Ansible
Lass uns mit Java kratzen! !!
Verwenden Sie WebJars mit Gradle
Beginnen Sie mit Gradle
Verwenden Sie jlink mit gradle
Bazel mit Alpen bauen
Endian-Konvertierung mit JAVA
Die Geschichte der Erstellung einer Task-Management-Anwendung mit Swing, Java
Verwenden Sie Java, das in Android Studio enthalten ist, um React Native zu erstellen
[Java] Vereinfachen Sie die Implementierung der Datenverlaufsverwaltung mit Reladomo
[Java] [Play Framework] Bis das Projekt mit Gradle gestartet wird
Erstellen Sie mit Java + Spring eine Web-APP-Entwicklungsumgebung mit Visual Studio Code