[JAVA] Ich wollte einen AP-Server starten und nur mit dem Befehl Maven debuggen

Einführung

Wie der Titel schon sagt, wollte ich eine Umgebung erstellen, in der die Schrittausführung nur mit dem Befehl Maven ausgeführt werden kann.

Ich hatte nicht genügend Ressourcen, um Docker oder VM zu starten, daher konnte ich es kaum erwarten, zu klonen, auszuchecken und zu erstellen, aber ich wollte trotzdem die Überprüfung der Laufzeitvariablen und die Überprüfung der Versionsunterschiede durchführen.

Also dachte ich, ich sollte versuchen, die alte ** Codehaus Cargo (im Folgenden Cargo) ** zu verwenden, also wurde dieser Artikel geschrieben. Ich werde.

Es ist ein Tool, das es schon lange gibt, und der Inhalt wird jetzt erneuert: "Ist es heutzutage Maven?", Aber wenn es als Referenz verwendet werden kann.

Bedarf

Dinge notwendig

Bereiten Sie Folgendes im Voraus vor.

Und hier ist was ich gemacht habe

cargo-jetty-launcher - GitHub

Es ist schlampig, besteht aber nur aus der Konfigurationsdatei pom.xml und Jetty. Grundsätzlich wird das Argument zur Ausführung des Befehls mvn (Option -D) verwendet, um alles zu tun.

Derzeit funktioniert die Beispiel-App, die gerade die Datenquelle ** org.codehaus.cargo: datasource-war ** öffnet, mit dem folgenden Befehl.

git clone https://github.com/Piecemeal-Technology-Inc/cargo-jetty-launcher.git
cd cargo-jetty-launcher
mvn initialize compile cargo:run

Wenn Sie mit Ihrem Browser auf http: // localhost: 8081 / change-context-root / test zugreifen, wird "Verbindung hergestellt!" Angezeigt. Das Kontextstammverzeichnis wird durch context.path in pom.xml gesteuert.

Lassen Sie uns debuggen

Starten Sie VSCode und generieren Sie Java launch.json mit "Ausführen" - "Konfiguration hinzufügen". Fügen Sie daher die folgende Konfiguration zu den Konfigurationen hinzu.

launch.json


    {
       "type": "java",
       "name": "Debug (Remote 9990)",
       "request": "attach" , //Remote-Debug-Spezifikation
       "projectName" : "cargo-jetty-launcher",
       "hostName": "localhost",
       "port": 9990, // pom.XML-Debug.Übereinstimmung mit der Port-Eigenschaft
       //Fügen Sie der unter Ziel erstellten Quelle einen Referenzpfad hinzu
       "sourcePaths": [
           "${workspaceFolder}/target/sources-datasource-war.1.7.11/main",
           "${workspaceFolder}/target/sources-datasource-war.1.7.11/dependency"
       ]
    }

Nachdem die Vorbereitung abgeschlossen ist, können Sie Schritte ausführen, indem Sie einen Haltepunkt festlegen und den Debugger starten.

ezgif-4-be77008fa52c.gif

  1. Starten Sie den Server mit mvn load: run
  2. Ziel / Quellen-Datenquelle-Krieg.1.7.11 / Haupt enthält die Quelle des Krieges. Setzen Sie also einen Haltepunkt, an dem Sie anhalten möchten.
  3. Führen Sie die von launch.json erstellte Konfiguration durch Debuggen aus
  4. Gehen Sie zu http: // localhost: 8081 / change-context-root / test
  5. Halten Sie am Haltepunkt an! Sie können nicht nur auf die Anwendungsseite, sondern auch auf die Jetty-Seite zugreifen

abschließend

※Hinweis ** Dies ist das Ergebnis von Versuch und Irrtum, daher denke ich nicht, dass es im Grunde die theoretische Straße ist. ** ** ** Wenn Sie eine eingebettete Datenquelle verwenden oder Jettys eigene Erweiterung nicht enthalten, ist es in Ordnung, wenn Sie dies normal wie offiziell tun.

Da es bis zu einem gewissen Grad mit Laufzeitargumenten verallgemeinert ist, kann es leicht ausgelöst werden, indem für jede Anwendung, die Sie auslösen möchten, ein Befehl vorbereitet wird. Da es keine Substanz wie den Quellcode enthält, kann die Ausführungsumgebung in PJ in einer einfachen Form erweitert werden.

Ich dachte, ich würde diese Geschichte schreiben, weil ich mich wirklich für Cargo interessiere, aber ich glaube nicht, dass es eine Nachfrage gibt, also werde ich sie vorerst weglassen.

Voraussetzungen für die Verwendung

Erstens müssen sich der auszuführende War- und Source-JAR im lokalen Repository oder Remote-Repository befinden. Wenn Sie nicht debuggen, brauchen Sie kein Quellglas, nur Krieg.

Recommended Posts

Ich wollte einen AP-Server starten und nur mit dem Befehl Maven debuggen
Ich möchte Tomcat auf den Server bringen und die Anwendung starten
Herunterladen und Ausführen des Jar-Pakets direkt aus dem Maven-Repository mit nur der Befehlszeile
Ich möchte den Startbefehl mit Docker-Compose an Postgres übergeben.
Ich möchte mit Kotlin und Java zum vorherigen Bildschirm zurückkehren!
Ich habe versucht, mit Docker eine Plant UML Server-Umgebung zu erstellen
Ich habe versucht, den Betrieb des gRPC-Servers mit grpcurl zu überprüfen
Ich wollte die JavaFX-Programmierung mit dem Spring Framework vereinfachen
Ich wollte der Methode @VisibleForTesting hinzufügen
Ich habe versucht, die Geschwindigkeit von Graal VM mit JMH zu messen und zu vergleichen
Immerhin wollte ich den Inhalt von MySQL mit Docker in der Vorschau anzeigen ...
IDE und Maven werden mit allen Debug-Informationen kompiliert
Wenn Eclipse den Server nicht starten kann
Ich wollte Spring Boot in einem Multiprojekt gradle
Aktualisierte Node.js mit Nodebrew und schrieb die Routine per Skript, um -g erneut zu installieren
Ich habe versucht, was ich mit Stream leise versuchen wollte.
[wip] Komfortable und kostenlose serverseitige Entwicklung mit dem Server
Was tun, wenn der Rails-Server nicht gestartet werden kann?
Ich habe versucht, CSV mit Outsystems zu lesen und auszugeben
Ich habe MySQL 5.7 mit Docker-Compose gestartet und versucht, eine Verbindung herzustellen
Ich möchte den Dunkelmodus mit der SWT-App verwenden
HTTPS-Verbindung mit Java zum selbstsignierten Zertifikatsserver
Ich möchte Bildschirmübergänge mit Kotlin und Java machen!
Bis Sie mit Maven ein von Scala geschriebenes Projekt erstellen und es mit dem Befehl scala ausführen.
Warum kann ich den mit gem installierten Befehl Rails verwenden? ??
Ich habe versucht, die Verarbeitungsgeschwindigkeit mit spiritueller Technik zu erhöhen
Ich habe versucht, die Grundlagen von Kotlin und Java zusammenzufassen
Befehl zum Überprüfen der Anzahl und des Status von Java-Threads
Ich möchte eine Liste mit Kotlin und Java erstellen!
Ich möchte eine Methode aufrufen und die Nummer zählen
Ich wollte nur eine reaktive Eigenschaft in Java erstellen
Ich möchte eine Funktion mit Kotlin und Java erstellen!
Ich habe versucht, den Chat mit dem Minecraft-Server mit der Discord-API zu verknüpfen
So führen Sie React und Rails auf demselben Server aus
Ich möchte verschiedene Funktionen mit Kotlin und Java implementieren!
Technische Ursachen und Gegenmaßnahmen für die Punkte, denen ich mit der ersten Android-App und Kotlin verfallen war
Ich habe versucht, die Ergebnisse vor und nach der Date-Klasse mit einer geraden Zahl auszudrücken
[Spring Boot] Ich möchte meine eigene Eigenschaftendatei hinzufügen und den Wert mit env.getProperty () abrufen.