blob: 68b39368b385f98083e53d6f0a268c04bf288f76 [file] [view]
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
----
<h4>Grails Web Project</h4>
-----
A project created with a typical `grails create-app --profile=web`
```
apply plugin: "org.grails.grails-web"
apply plugin: "org.grails.grails-gsp"
```
<h4>Grails Web API Project</h4>
----
A project created with a typical `grails create-app --profile=web-api`
```
apply plugin: "org.grails.grails-web"
```
<h4>Grails Web Micro Project</h4>
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
---
<h4>Grails Plugin Web Project</h4>
A project created with a typical `grails create-plugin --profile=web-plugin`
```
apply plugin: "org.grails.grails-plugin"
apply plugin: "org.grails.grails-gsp"
```
<h4>Grails Plugin Web API Project</h4>
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"
```
<h4>Grails Plugin Web Plugin Project</h4>
A project created with a typical `grails create-plugin --profile=plugin`.
```
apply plugin: "org.grails.grails-plugin"
```
<h4>Grails Plugin Web Micro Project</h4>
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.