grails
Spridning
Sök…
Exekverbar burk
Ett av de enklaste sätten att distribuera Grails 3.x är att bygga en körbar burkfil som bäddar in en servletbehållare (Tomcat, Undertow, etc) med applikationen.
Ändra 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')
}
Bygg med hjälp av ./gradlew assemble
Resulterande burk är nu en helt körbar app som du kan starta:
$ head build/libs/myapp.jar
#!/bin/bash
#
# . ____ _ __ _ _
# /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
# ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
# \\/ ___)| |_)| | | | | || (_| | ) ) ) )
# ' |____| .__|_| |_|_| |_\__, | / / / /
# =========|_|==============|___/=/_/_/_/
# :: Spring Boot Startup Script ::
#
Du kan starta det som du normalt skulle göra för alla kommandoradsappar:
$ ./build/libs/myapp.jar Grails application running at http://localhost:8080 in environment: production
Det uppför sig också som en init-tjänst:
$ ln -s /opt/myapp/myapp.jar /etc/init.d/myapp
$ service myapp [start|stop|status|restart]
Detaljerad dokumentation finns under spring-boot docs: http://docs.spring.io/spring-boot/docs/current/reference/html/deployment-install.html
Skapandet av krigsfiler
När vi skriver en webbapplikation i Grails, för att distribuera applikationen behöver vi en "krig" -fil som måste läggas i servletcontainern (Tomcat etc).
Gå först till projektkatalogen:
cd to_project_directory
- Skapa krigsfil från kommandotolken:
grails war
2.Det rekommenderas alltid att du rensar din ansökan innan krig skapas
Rengör ansökan från kommandotolken:
grails clean
Att kombinera ovanstående två steg i ett kommer att resultera i
grails clean && grails war
Du kan också ange den miljö där du vill skapa krigsfilen.
grails [environment] war
Där [environment]
kan ta följande värden: till exempel dev
, prod
eller test
.
Till skillnad från andra kommandon körs krigskommandot i produktionsmiljön som standard istället för utveckling.