Skip to content

Latest commit

 

History

History
179 lines (168 loc) · 4.29 KB

README.md

File metadata and controls

179 lines (168 loc) · 4.29 KB

Gradle 8

Command Lines

Build war files

gradle -Dgrails.env=dev assemble
gradle -Dgrails.env=prod assemble

If custom environment is setup in yml file

gradle -Dgrails.env=staging assemble
gradle -Dgrails.env=preproduction assemble

Running app locally

./grailsw run-app
./grailsw -Dgrails.env=staging run-app
./grailsw -Dgrails.env=preproduction run-app

or running app locally with gradle

./gradlew bootRun
./gradlew -Dgrails.env=staging  bootRun

Run specific commends grails with gradle

./gradlew runCommand -Pargs="generate-all com.micompany.MyStaff"
./gradlew runCommand -Pargs="create-domain-class com.micompany.MyStaff"
./grailsw create-domain-class com.micompany.Products

Upgrade wrapper

./grailsw update-wrapper

Other gradle commands.

./gradlew tasks
./gradlew publishToMavenLocal

Running System Info

See example running in index.gsp

Runtime Memory information

TODO Print Mem Info

Access Configuration Information

Also read Application name

${grails.util.Metadata.current.getApplicationName()}

Application Version

${grails.util.Metadata.current.getApplicationVersion()}

Environment name

${grails.util.Environment.current.name}

Environment Configuration variables

This has been deprecated in Gradle 8

${grailsApplication.config.myEnvironmentVariables}

Use this instead

grailsApplication.config.get("myEnvironmentVariables")

Access System Information

Java version

${System.getProperty('java.version')}

Groovy version

${GroovySystem.getVersion()}

Grails version

${grailsApplication.metadata.getGrailsVersion()}

Also see Grails config

application.yml Configuration File

See application.yml

Global Variables

same global variables are used in all running environment.

myGlobalVariables:
  username: 'adminu'
  password: 'adminp'
  other: 'somethingelse'
class BootStrap {
    def grailsApplication // inject
    def init = { servletContext ->
        //Global Variables
        def username = grailsApplication.config.myGlobalVariables.username
        username = grailsApplication.config.get("myGlobalVariables.username")
        username = grailsApplication.config.myGlobalVariables.get("username")
    }
}

Environment Variables

Variable that are dependent on running environment. As example shows Groovy can get proper variable data type.

environments:
  development:
    myEnvironmentVariables: 'This is Dev variable'
    tomcatDirectoryPath: '/opt/stage_tomcat/'
    testMode: true //For development runs as test
    fileAge: 30 //different for each environment
class BootStrap {
    def grailsApplication // inject
    def init = { servletContext ->
        // Environment variables
        def myEnvironmentVariables = grailsApplication.config.get("myEnvironmentVariables")
        boolean testmode = grailsApplication.config.get("testMode")
        int fileage = grailsApplication.config.get("fileAge")
    }
}

In GSP files get values from yml file. See file /view/index.gsp.

${grailsApplication.config.tomcatDirectoryPath}

Change log level

Running environment log level can be changed

  development:
    logging.level.com.arjang: INFO

Application Server settings

Server port and context for each environment can be set.

environments:
  development:
    server:
      port: 8081
      servlet:
        context-path: '/example1'

See Example2 for DataSources

Others

Inject text file into GSP

  • Add following to UrlMappings.goovy
"/buildinfo"(view: "/buildinfo")
  • Add file buildinfo.gsp to /views/ directory
  • Add jquery-3.7.1.min.js to /assets/javascripts/
  • Add following to gsp page
<asset:javascript src="jquery-3.7.1.min.js"/>
  • Add a JS function in < header > to load the file
    <script>
        $(function () {
            $("#buildinfocontent").load("buildinfo")
        });
    </script>
  • Add < div > to include content of the file.
<div id="buildinfocontent"></div>