可執行的罐子

部署 Grails 3.x 的最簡單方法之一是構建一個可執行 jar 檔案,該檔案將 servlet 容器(Tomcat,Undertow 等)嵌入到應用程式中。

修改 build.gradle

// Remove or comment out the war plugin:
// apply plugin:"war"

// Enable the executable jar:
springBoot {
    executable = true
}

// Optional: Customize the jar properties:
//  https://docs.gradle.org/current/dsl/org.gradle.api.tasks.bundling.Jar.html
jar {
    archiveName('myapp.jar')
}

使用 ./gradlew assemble 構建

結果 jar 現在是一個可以啟動的完全可執行的應用程式:

$ head build/libs/myapp.jar
#!/bin/bash
#
#    .   ____          _            __ _ _
#   /\\ / ___'_ __ _ `_(_)`_ __  __ _ \ \ \ \
#  ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
#   \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
#    '  |____| .__|_| |_|_| |_\__, | / / / /
#   =========|_|==============|___/=/_/_/_/
#   :: Spring Boot Startup Script ::
#

你可以像通常的任何命令列應用程式一樣啟動它:

$ ./build/libs/myapp.jar
Grails application running at http://localhost:8080 in environment: production

它的行為類似於 init 服務:

$ ln -s /opt/myapp/myapp.jar /etc/init.d/myapp
$ service myapp [start|stop|status|restart]

詳細文件在 spring-boot 文件下: http//docs.spring.io/spring-boot/docs/current/reference/html/deployment-install.html