2017-08-30 1 views
2

Ich erstelle eine Spring-Boot-Anwendung für eine Nicht-Web-Anwendung, und ich würde gerne wissen, welche Plugin oder Prozedur ich verwenden muss.So erstellen Sie eine ausführbare Jar für eine Non-Web-Anwendung mit Spring Boot

Für eine Service-Entwicklung Micro, das Plugin in einem build.gradle hinzuzufügen ist:

buildscript { 
    repositories { 
     mavenCentral() 
    } 
    dependencies { 
     classpath("org.springframework.boot:spring-boot-gradle-plugin:1.5.6.RELEASE") 
    } 
} 

apply plugin: 'org.springframework.boot' 

Aber, wenn Sie das Glas erzeugt auszuführen, starten Sie das Glas ein Tomcat, und diese Art von Software ist nicht erforderlich:

`java -jar ConsoleApp-0.7.0-SNAPSHOT.jar Demo = demo``

2017-08-30 14:48:13.505 INFO 82718 --- [   main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8080 (http) 
2017-08-30 14:48:13.510 INFO 82718 --- [   main] spring.ParamLoader      : Loading data... 
2017-08-30 14:48:13.510 INFO 82718 --- [   main] spring.ParamLoader      : item: 
2017-08-30 14:48:13.523 INFO 82718 --- [   main] spring.ConsoleApp      : Started ConsoleApp in 4.648 seconds (JVM running for 5.257) 
^C2017-08-30 14:48:18.502 INFO 82718 --- [  Thread-3] ationConfigEmbeddedWebApplicationContext : Closing org.springframework.boot[email protected]6477463f: startup date [Wed Aug 30 14:48:09 CEST 2017]; root of context hierarchy 

Jede Alternative?

Vielen Dank im Voraus.

Juan Antonio

+0

Sie brauchen nichts anderes. Was gestartet wird, hängt von den Abhängigkeiten ab. Wenn Sie tomcat (oder einen der anderen unterstützten Servlet-Container) nicht verwenden, wird es als nicht webbasierte Anwendung gestartet. –

Antwort

5

Was Sie haben, ist ein guter Anfang.

Fügen Sie nun die folgenden Abhängigkeiten hinzu, um alle Spring-Grundlagen zu erhalten.

dependencies { 
    compile('org.springframework.boot:spring-boot-starter') 
    testCompile 'org.springframework.boot:spring-boot-starter-test' 
} 

Dann können Sie Ihre Hauptklasse implementieren org.springframework.boot.CommandLineRunner und Ihre App ihre Arbeit im run Verfahren beginnen kann.

@SpringBootApplication 
public class MyApplication implements CommandLineRunner { 
    @Override 
    public void run(String[] args) { 
    // do your work here 
    } 

    public static void main(String[] args) { 
    SpringApplication.run(MyApplication.class, args); 
    } 
} 

PS. Wenn Sie Tomcat zuerst starten, stellen Sie sicher, dass Ihre Abhängigkeitsliste NICHTspring-boot-starter-web enthält.

+1

Hallo @Strelok, das Problem war, wie Sie sagten, die Abhängigkeit. kompiliere ("org.springframework.boot: spring-boot-starter: 1.5.6.RELEASE") vorher: kompiliere ("org.springframework.boot: spring-boot-starter-web: 1.5.6.RELEASE") wenn ich entfernt das Suffix: Web, hatte die App ein erwartetes Verhalten. Danke vielmals. – jabrena

Verwandte Themen