2017-08-30 107 views
2

我正在爲非Web應用程序創建Spring-Boot應用程序,我想知道我必須使用的插件或過程。如何使用Spring Boot爲非Web應用程序創建可執行Jar

中的微業務的發展,該插件在build.gradle補充說明的是:

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

apply plugin: 'org.springframework.boot' 

但是,當你執行JAR產生,罐子啓動一個Tomcat,並且不需要這樣的軟件:

`Java的罐子consoleApp-0.7.0-SNAPSHOT.jar演示= 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 

任何替代?

非常感謝提前。

胡安·安東尼奧

+0

你不需要別的東西。什麼是啓動取決於依賴關係。如果您不包含tomcat(或其他支持的servlet容器),它將作爲非web應用程序啓動。 –

回答

5

你有什麼是一個好的開始。

現在添加以下依賴項以獲取所有Spring基礎知識。

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

然後你的主類可以實現org.springframework.boot.CommandLineRunner和您的應用程序可以在run方法開始工作。

@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。如果你有Tomcat首先開始確定你的依賴列表確實不是包含spring-boot-starter-web

+1

嗨@Strelok,問題在於你說的依賴。編譯(「org.springframework.boot:spring-boot-starter:1.5.6.RELEASE」)以前:compile(「org.springframework.boot:spring-boot-starter-web:1.5.6.RELEASE」)當我刪除後綴:網絡,該應用程序有一個預期的行爲。非常感謝。 – jabrena

相關問題