Skip to content

grails/grails-gradle-plugin

Repository files navigation

Grails Gradle Plugins

Latest API Docs: https://grails.github.io/grails-gradle-plugin/latest/api/

Below are the plugins that are provided by the grails-gradle-plugin dependency.

buildscript {
    dependencies {
        classpath "org.grails:grails-gradle-plugin:$grailsVersion"
    }
}

grails-core

Todo: Add the docs

grails-doc

Todo: Add the docs

grails-gsp

  • Configure GSP Compiling Task

grails-plugin

  • Configure Ast Sources
  • Configure Project Name And Version AST Metadata
  • Configure Plugin Resources
  • Configure Plugin Jar Task
  • Configure Sources Jar Task

grails-profile

Todo: Add the docs

grails-profile-publish

Todo: Add the docs

grails-publish

A Gradle plugin to ease publishing with the maven publish plugin or the nexus publish plugin.

Example Usage:

grailsPublish {
    websiteUrl = 'http://foo.com/myplugin'
    license {
        name = 'Apache-2.0'
    }
    issueTrackerUrl = 'https://github.com/myname/myplugin/issues'
    vcsUrl = 'https://github.com/myname/myplugin'
    title = 'My plugin title'
    desc = 'My plugin description'
    developers = [johndoe: 'John Doe']
}

or

grailsPublish {
    githubSlug = 'foo/bar'
    license {
        name = 'Apache-2.0'
    }
    title = 'My plugin title'
    desc = 'My plugin description'
    developers = [johndoe: 'John Doe']
}

By default, this plugin will publish to the specified MAVEN_PUBLISH instance for snapshots, and NEXUS_PUBLISH for releases. To change the snapshot publish behavior, set snapshotRepoType to PublishType.NEXUS_PUBLISH. To change the release publish behavior, set releaseRepoType to PublishType.MAVEN_PUBLISH.

The credentials and connection url must be specified as a project property or an environment variable.

MAVEN_PUBLISH Environment Variables are:

MAVEN_PUBLISH_USERNAME
MAVEN_PUBLISH_PASSWORD
MAVEN_PUBLISH_URL

NEXUS_PUBLISH Environment Variables are:

NEXUS_PUBLISH_USERNAME
NEXUS_PUBLISH_PASSWORD
NEXUS_PUBLISH_URL
NEXUS_PUBLISH_SNAPSHOT_URL
NEXUS_PUBLISH_STAGING_PROFILE_ID

By default, the release or snapshot state is determined by the project.version or projectVersion gradle property. To override this behavior, use the environment variable GRAILS_PUBLISH_RELEASE to decide if it's a release or snapshot.

grails-web

  • Adds web specific extensions

Typical Project Type Gradle Plugin Includes

Below are typical Gradle plugin applies that certain types of projects should expect. These should be automatically added of you when using grails create-app and grails create-plugin commands. However, if you wish to enhance or change the scope of your plugin or project you may have to change (add or remove) a grails gradle plugin.

Create App

Grails Web Project

----- A project created with a typical `grails create-app --profile=web`
apply plugin: "org.grails.grails-web"
apply plugin: "org.grails.grails-gsp"

Grails Web API Project

---- A project created with a typical `grails create-app --profile=web-api`
apply plugin: "org.grails.grails-web"

Grails Web Micro Project

A project created with a typical grails create-app --profile=web-micro

There is no plugins used here as this project type creates a stand alone runnable groovy application and no build.gradle file.

Create Plugin

Grails Plugin Web Project

A project created with a typical `grails create-plugin --profile=web-plugin`
apply plugin: "org.grails.grails-plugin"
apply plugin: "org.grails.grails-gsp"

Grails Plugin Web API Project

A project created with a typical `grails create-plugin --profile=web-api`. _Note: No org.grails.grails-plugin include_
apply plugin: "org.grails.grails-web"

Grails Plugin Web Plugin Project

A project created with a typical `grails create-plugin --profile=plugin`.
apply plugin: "org.grails.grails-plugin"

Grails Plugin Web Micro Project

A project created with a typical grails create-plugin --profile=web-micro

There is no plugins used here as this project type creates a stand alone runnable groovy application and no `build.gradle`` file.