[JAVA] Erstellen Sie mit dem Befehl cURL + tar ein Spring Boot-App-Entwicklungsprojekt

Ich denke, dass viele Leute beim Erstellen einer neuen Spring Boot-App Entwicklungsprojekte mit einer der folgenden Methoden erstellen.

Sie können nach abhängigen Artefakten suchen, die mithilfe der Web-Benutzeroberfläche oder des IDE-Assistenten angegeben werden können, und Sie können einfach ein Entwicklungsprojekt erstellen, indem Sie einfach einen Wert im Eingabeformular angeben und auf klicken. Dies ist sehr praktisch und ich liebe es, aber manchmal finde ich die UI-Operation selbst problematisch.

In einem solchen Fall ist es CLI. Spring Boot unterstützt auch die Methode zum Erstellen eines Entwicklungsprojekts mit den von Spring Boot bereitgestellten Befehlen. Dieses Mal werde ich Ihnen jedoch zeigen, wie Sie die Befehle curl und tar verwenden.

Erstellen Sie ein Projekt für eine eigenständige App

Sie können ein Entwicklungsprojekt für eine eigenständige Anwendung (= Nicht-WEB) erstellen, indem Sie den folgenden Befehl ausführen.

$ curl -s https://start.spring.io/starter.tgz -d baseDir=demo | tar -xzvf -
x demo/mvnw
x demo/
x demo/.mvn/
x demo/.mvn/wrapper/
x demo/src/
x demo/src/main/
x demo/src/main/java/
x demo/src/main/java/com/
x demo/src/main/java/com/example/
x demo/src/main/resources/
x demo/src/test/
x demo/src/test/java/
x demo/src/test/java/com/
x demo/src/test/java/com/example/
x demo/.gitignore
x demo/.mvn/wrapper/maven-wrapper.jar
x demo/.mvn/wrapper/maven-wrapper.properties
x demo/mvnw.cmd
x demo/pom.xml
x demo/src/main/java/com/example/DemoApplication.java
x demo/src/main/resources/application.properties
x demo/src/test/java/com/example/DemoApplicationTests.java

Verzeichnisaufbau


$ tree demo
demo
├── mvnw
├── mvnw.cmd
├── pom.xml
└── src
    ├── main
    │   ├── java
    │   │   └── com
    │   │       └── example
    │   │           └── DemoApplication.java
    │   └── resources
    │       └── application.properties
    └── test
        └── java
            └── com
                └── example
                    └── DemoApplicationTests.java

Versuche zu bauen.

$ cd demo
$ ./mvnw clean package

Versuchen Sie es auszuführen.

$ java -jar target/demo-0.0.1-SNAPSHOT.jar

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v1.4.3.RELEASE)

2017-01-03 15:38:28.749  INFO 31974 --- [           main] com.example.DemoApplication              : Starting DemoApplication v0.0.1-SNAPSHOT on Kazuki-no-MacBook-Pro.local with PID 31974 (/usr/local/apps/demo/target/demo-0.0.1-SNAPSHOT.jar started by shimizukazuki in /usr/local/apps/demo)
2017-01-03 15:38:28.751  INFO 31974 --- [           main] com.example.DemoApplication              : No active profile set, falling back to default profiles: default
2017-01-03 15:38:28.794  INFO 31974 --- [           main] s.c.a.AnnotationConfigApplicationContext : Refreshing org.springframework.context.annotation.AnnotationConfigApplicationContext@5b37e0d2: startup date [Tue Jan 03 15:38:28 JST 2017]; root of context hierarchy
2017-01-03 15:38:29.312  INFO 31974 --- [           main] o.s.j.e.a.AnnotationMBeanExporter        : Registering beans for JMX exposure on startup
2017-01-03 15:38:29.323  INFO 31974 --- [           main] com.example.DemoApplication              : Started DemoApplication in 0.843 seconds (JVM running for 1.151)
2017-01-03 15:38:29.324  INFO 31974 --- [       Thread-1] s.c.a.AnnotationConfigApplicationContext : Closing org.springframework.context.annotation.AnnotationConfigApplicationContext@5b37e0d2: startup date [Tue Jan 03 15:38:28 JST 2017]; root of context hierarchy
2017-01-03 15:38:29.325  INFO 31974 --- [       Thread-1] o.s.j.e.a.AnnotationMBeanExporter        : Unregistering JMX-exposed beans on shutdown

:clap: :clap: :clap:

Erstellen Sie ein Projekt für die WEB-Anwendung

Sie können ein Entwicklungsprojekt für WEB-Anwendungen erstellen, indem Sie den folgenden Befehl ausführen (geben Sie das Web für Abhängigkeiten an).

$ curl -s https://start.spring.io/starter.tgz -d name=web-demo -d artifactId=web-demo -d dependencies=web -d baseDir=web-demo | tar -xzvf -
x web-demo/mvnw
x web-demo/
x web-demo/.mvn/
x web-demo/.mvn/wrapper/
x web-demo/src/
x web-demo/src/main/
x web-demo/src/main/java/
x web-demo/src/main/java/com/
x web-demo/src/main/java/com/example/
x web-demo/src/main/resources/
x web-demo/src/main/resources/static/
x web-demo/src/main/resources/templates/
x web-demo/src/test/
x web-demo/src/test/java/
x web-demo/src/test/java/com/
x web-demo/src/test/java/com/example/
x web-demo/.gitignore
x web-demo/.mvn/wrapper/maven-wrapper.jar
x web-demo/.mvn/wrapper/maven-wrapper.properties
x web-demo/mvnw.cmd
x web-demo/pom.xml
x web-demo/src/main/java/com/example/WebDemoApplication.java
x web-demo/src/main/resources/application.properties
x web-demo/src/test/java/com/example/WebDemoApplicationTests.java

Verzeichnisaufbau


$ tree web-demo
web-demo
├── mvnw
├── mvnw.cmd
├── pom.xml
└── src
    ├── main
    │   ├── java
    │   │   └── com
    │   │       └── example
    │   │           └── WebDemoApplication.java
    │   └── resources
    │       ├── application.properties
    │       ├── static
    │       └── templates
    └── test
        └── java
            └── com
                └── example
                    └── WebDemoApplicationTests.java

Versuche zu bauen.

$ cd web-demo
$ ./mvnw clean package

Versuchen Sie es auszuführen.

$ java -jar target/web-demo-0.0.1-SNAPSHOT.jar

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v1.4.3.RELEASE)

2017-01-03 15:48:49.606  INFO 32190 --- [           main] com.example.WebDemoApplication           : Starting WebDemoApplication v0.0.1-SNAPSHOT on Kazuki-no-MacBook-Pro.local with PID 32190 (/usr/local/apps/web-demo/target/web-demo-0.0.1-SNAPSHOT.jar started by shimizukazuki in /usr/local/apps/web-demo)
2017-01-03 15:48:49.608  INFO 32190 --- [           main] com.example.WebDemoApplication           : No active profile set, falling back to default profiles: default
2017-01-03 15:48:49.658  INFO 32190 --- [           main] ationConfigEmbeddedWebApplicationContext : Refreshing org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@4bf558aa: startup date [Tue Jan 03 15:48:49 JST 2017]; root of context hierarchy
2017-01-03 15:48:50.658  INFO 32190 --- [           main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat initialized with port(s): 8080 (http)
2017-01-03 15:48:50.670  INFO 32190 --- [           main] o.apache.catalina.core.StandardService   : Starting service Tomcat
2017-01-03 15:48:50.671  INFO 32190 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet Engine: Apache Tomcat/8.5.6
2017-01-03 15:48:50.744  INFO 32190 --- [ost-startStop-1] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2017-01-03 15:48:50.744  INFO 32190 --- [ost-startStop-1] o.s.web.context.ContextLoader            : Root WebApplicationContext: initialization completed in 1089 ms
2017-01-03 15:48:50.855  INFO 32190 --- [ost-startStop-1] o.s.b.w.servlet.ServletRegistrationBean  : Mapping servlet: 'dispatcherServlet' to [/]
2017-01-03 15:48:50.858  INFO 32190 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'characterEncodingFilter' to: [/*]
2017-01-03 15:48:50.858  INFO 32190 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'hiddenHttpMethodFilter' to: [/*]
2017-01-03 15:48:50.858  INFO 32190 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'httpPutFormContentFilter' to: [/*]
2017-01-03 15:48:50.858  INFO 32190 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'requestContextFilter' to: [/*]
2017-01-03 15:48:51.071  INFO 32190 --- [           main] s.w.s.m.m.a.RequestMappingHandlerAdapter : Looking for @ControllerAdvice: org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@4bf558aa: startup date [Tue Jan 03 15:48:49 JST 2017]; root of context hierarchy
2017-01-03 15:48:51.123  INFO 32190 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error]}" onto public org.springframework.http.ResponseEntity<java.util.Map<java.lang.String, java.lang.Object>> org.springframework.boot.autoconfigure.web.BasicErrorController.error(javax.servlet.http.HttpServletRequest)
2017-01-03 15:48:51.124  INFO 32190 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error],produces=[text/html]}" onto public org.springframework.web.servlet.ModelAndView org.springframework.boot.autoconfigure.web.BasicErrorController.errorHtml(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse)
2017-01-03 15:48:51.147  INFO 32190 --- [           main] o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapped URL path [/webjars/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2017-01-03 15:48:51.147  INFO 32190 --- [           main] o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapped URL path [/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2017-01-03 15:48:51.173  INFO 32190 --- [           main] o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapped URL path [/**/favicon.ico] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2017-01-03 15:48:51.282  INFO 32190 --- [           main] o.s.j.e.a.AnnotationMBeanExporter        : Registering beans for JMX exposure on startup
2017-01-03 15:48:51.335  INFO 32190 --- [           main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8080 (http)
2017-01-03 15:48:51.338  INFO 32190 --- [           main] com.example.WebDemoApplication           : Started WebDemoApplication in 2.123 seconds (JVM running for 2.45)

Versuchen Sie, auf den gestarteten Tomcat zuzugreifen.

$ curl http://localhost:8080/
{"timestamp":1483426201099,"status":404,"error":"Not Found","message":"No message available","path":"/"}

Ich habe keinen Endpunkt erstellt, daher ist es richtig, einen 404 Not Found-Fehler zu erhalten.

:clap: :clap: :clap:

Für mehr Informationen···

Lesen Sie die Spring Initializr GitHub README.

Zusammenfassung

Wenn Sie im Voraus entschieden haben, was zu tun ist (z. B. im Fall des Verfahrens zum Einrichten der Entwicklungsumgebung) ... Entwickeln Sie mit einem Liner (= Kopierbefehle) mithilfe der CLI anstelle der GUI Es ist effizient, das Verfahren zum Erstellen eines Projekts zu befolgen.

Recommended Posts

Erstellen Sie mit dem Befehl cURL + tar ein Spring Boot-App-Entwicklungsprojekt
Erstellen Sie mit Spring Boot eine einfache Such-App
Erstellen Sie mit Docker eine Spring Boot-Entwicklungsumgebung
Erstellen Sie eine App mit Spring Boot 2
Erstellen Sie eine App mit Spring Boot
Erstellen Sie ein Maven-Projekt mit Befehlen
Erstellen Sie mit dem Befehl eine JAR-Datei
Erstellen Sie eine Website mit Spring Boot + Gradle (jdk1.8.x)
Erstellen Sie einen Web-API-Server mit Spring Boot
So erstellen Sie ein Spring Boot-Projekt in IntelliJ
[Spring Boot] So erstellen Sie ein Projekt (für Anfänger)
Erstellen Sie Restapi mit Spring Boot (bis zum Ausführen der App)
Erstellen Sie mit Spring Security 2.1 eine einfache Demo-Site mit Spring Security
Erstellen Sie mit Spring Boot einen Mikrodienst
Eine Geschichte voller Grundlagen von Spring Boot (gelöst)
Erstellen Sie eine Hello World-Webanwendung mit Spring Framework + Jetty
Hot Deploy mit Spring Boot-Entwicklung
Erstellen Sie eine Befehlszeilen-App mit maven
Erstellen einer Spring Boot-Entwicklungsumgebung in Vagrant
[Rails6] Erstelle eine neue App mit Rails [Anfänger]
Erstellen Sie mit Spring Batch eine einfache On-Demand-Charge
Erstellen Sie mit Docker eine Spring Boot-gradle-mysql-Entwicklungsumgebung
Erstellen Sie mit IntelliJ ein Java Spring Boot-Projekt
Starten Sie die Entwicklung von Webanwendungen mit Spring Boot
[Rails 5] Erstelle eine neue App mit Rails [Anfänger]
Erstellen Sie mit Intellij ein Spring Boot-Projekt und beenden Sie es sofort nach dem Start
[Java] Erstellen Sie mit dem Befehl jar eine JAR-Datei, die sowohl komprimiert als auch nicht komprimiert ist
Schritte zum Erstellen einer einfachen Kamel-App mit Apache Camel Spring Boot-Startern
Führen Sie ein Spring Boot-Projekt mit VS-Code aus
Erstellen Sie eine Spring Boot-Anwendung mit IntelliJ IDEA
Erstellen Sie mit Gradle Spring Boot-Projekte nach Umgebung
Java-Tipps - Erstellen Sie mit Gradle ein Spring Boot-Projekt
Erstellen Sie eine CRUD-App mit Spring Boot 2 + Thymeleaf + MyBatis
Erstellen Sie eine Mehrschlüsselkarte mit einer Standardbibliothek
Erstellen Sie Ihr eigenes Dienstprogramm mit Thymeleaf mit Spring Boot
Erstellen Sie eine Spring Boot-Umgebung mit Windows + VS-Code
Zeigen Sie die Gradle-Aufgabe im Spring Boot-Projekt an
Erstellen Sie mit Spring Boot 2.0 einen Spring Cloud Config Server mit Sicherheit
Vom Erstellen eines Spring Boot-Projekts bis zum Ausführen einer Anwendung mit VS Code
Bis Sie ein Spring Boot-Projekt in Intellij erstellen und an Github senden
Erstellen Sie eine Web-App, die genau zum Lernen geeignet ist [Spring Boot + Thymeleaf + PostgreSQL]
Beim Hochladen einer Datei mit Spring Boot wird eine Fehlerbehandlung durchgeführt, wenn die maximale Dateigröße überschritten wird.
Docker-Befehl zum Erstellen eines Rails-Projekts in einem einzigen Schlag in einer Umgebung ohne Ruby
Erstellen Sie eine Jar-Datei mit zwei Befehlszeilen
Greifen Sie mit jdbcTemplate auf das integrierte h2db des Spring Boot zu
[JUnit 5-kompatibel] Schreiben Sie einen Test mit JUnit 5 mit Spring Boot 2.2, 2.3
Erstellen Sie eine Chat-App mit WebSocket (Tyrus) + libGDX + Kotlin
Implementieren Sie eine einfache Rest-API mit Spring Security mit Spring Boot 2.0
[JUnit 5] Schreiben Sie einen Validierungstest mit Spring Boot! [Parametrisierungstest]
Ein Memorandum beim Erstellen eines REST-Service mit Spring Boot
Bis Sie mit der Entwicklung mit Spring Boot in Eclipse 1 beginnen
Stellen Sie das Spring Boot-Projekt in XAMPP für Tomcat bereit
Bis Sie mit der Entwicklung mit Spring Boot in Eclipse 2 beginnen
Ich habe jetzt einen Test mit Spring Boot + JUnit 5 geschrieben
Hallo Welt (Konsolen-App) mit Apache Camel + Spring Boot 2
Mit Spring Boot herunterladen
Bis Sie mit Maven ein von Scala geschriebenes Projekt erstellen und es mit dem Befehl scala ausführen.
Ich habe versucht, mit Chocolatey eine Java8-Entwicklungsumgebung zu erstellen
Ändern Sie das Injektionsziel für jede Umgebung mit Spring Boot 2
Erstellen Sie ein Docker-Image mit installiertem Oracle JDK (yum