As part of the move to the Apache Software Foundation, the grails artifacts must adhere to the apache namespace.
The Grails developers have decided on several rules regarding packaging. These rules are enumerated here:
- For Grails applications, the group used should always be
org.apache.grails
. - Any group that is further nested is an implementation detail of Grails. While users can choose to override them, they are typically not meant to be included in a Grails app directly.
- Testing artifacts for Grails applications / plugins, will have the prefix
grails-testing-support-
to remind developers these artifacts should not typically be included in theimplementation
scope of their application. - Gradle plugins will be consolidated under a single repository.
- As part of the gradle plugin consolidation, we adopt consistent names and remove
views-
from the views gradle plugins. Instead they will match the existing gradle plugin naming pattern - i.e.grails-gsp
,grails-markup
, etc. - There will be one artifact published that can be included in either a
buildSrc/build.gradle
or abuildScript
to import all Grails gradle plugins. That plugin will beorg.apache.grails:grails-gradle-plugins
. - Grails artifacts should be prefixed with
grails-
with the exception of profiles. - Profiles will not use a
grails-
prefix because they are not distributed with an application. - Because there are many modern JSON implementations, and Grails may choose to implement them in the future, we will
refer to our existing
.gson
implementation asgson
instead ofjson
. - We have appended
-cli
where a CLI is being provided. - Several artifacts have been renamed for clarity. In general we use the suffix
-core
to signify a base project and drop the suffix on the package that the end user will use. - Package names, artifact ids, and group ids will use the plural form. Implementing classes will use the singular
form.
- For example:
org.apache.grails.events:grails-events
with theEventBusPlugin
- For example:
Below is a reference of all migrated artifacts - both their old and new name.
old group id | old artifact id | new group id | new artifact id | old gradle plugin name | new gradle plugin name | repository |
---|---|---|---|---|---|---|
org.grails.plugins | async | org.apache.grails | grails-async | grails-core | ||
org.grails | grails-async | org.apache.grails.async | grails-async-core | grails-core | ||
org.grails | grails-async-gpars | org.apache.grails.async | grails-async-gpars | grails-core | ||
org.grails | grails-async-rxjava | org.apache.grails.async | grails-async-rxjava | grails-core | ||
org.grails | grails-async-rxjava2 | org.apache.grails.async | grails-async-rxjava2 | grails-core | ||
org.grails | grails-async-rxjava3 | org.apache.grails.async | grails-async-rxjava3 | grails-core | ||
org.grails | grails-bom | org.apache.grails | grails-bom | grails-core | ||
org.grails | grails-bootstrap | org.apache.grails.bootstrap | grails-bootstrap | grails-core | ||
org.grails.plugins | cache | org.apache.grails | grails-cache | grails-cache | ||
org.grails | grails-plugin-codecs | org.apache.grails | grails-codecs | grails-core | ||
org.grails | grails-codecs | org.apache.grails.codecs | grails-codecs-core | grails-core | ||
org.grails | grails-console | org.apache.grails | grails-console | grails-core | ||
org.grails | grails-plugin-controllers | org.apache.grails | grails-controllers | grails-core | ||
org.grails.plugins | converters | org.apache.grails | grails-converters | grails-core | ||
org.grails | grails-core | org.apache.grails | grails-core | grails-core | ||
org.grails.plugins | hibernate5 | org.apache.grails | grails-data-hibernate5 | grails-data-mapping | ||
org.grails.plugins | database-migration | org.apache.grails | grails-data-hibernate5-dbmigration | grails-data-mapping | ||
org.grails | gorm-hibernate5-spring-boot | org.apache.grails | grails-data-hibernate5-spring-boot | grails-data-mapping | ||
org.grails.plugins | hibernate6 | org.apache.grails | grails-data-hibernate6 | grails-data-hibernate6 | ||
org.grails.plugins | database-migration | org.apache.grails | grails-data-hibernate6-dbmigration | grails-data-hibernate6 | ||
org.grails | gorm-hibernate6-spring-boot | org.apache.grails | grails-data-hibernate6-spring-boot | grails-data-hibernate6 | ||
org.grails | grails-datastore-gorm-async | org.apache.grails.data | grails-datamapping-async | grails-data-mapping | ||
org.grails | grails-datastore-gorm | org.apache.grails.data | grails-datamapping-core | grails-data-mapping | ||
org.grails | grails-datastore-gorm-hibernate5 | org.apache.grails.data | grails-datamapping-hibernate5 | grails-data-mapping | ||
org.grails | grails-datastore-gorm-hibernate6 | org.apache.grails.data | grails-datamapping-hibernate6 | grails-data-hibernate6 | ||
org.grails | grails-datastore-gorm-mongodb | org.apache.grails.data | grails-datamapping-mongodb | grails-data-mapping | ||
org.grails | grails-datastore-gorm-mongodb-ext | org.apache.grails.data | grails-datamapping-mongodb-ext | grails-data-mapping | ||
org.grails | grails-datastore-gorm-mongodb-bson | org.apache.grails.data | grails-datamapping-mongodb-bson | grails-data-mapping | ||
org.grails | grails-datastore-gorm-support | org.apache.grails.data | grails-datamapping-support | grails-data-mapping | ||
org.grails.tck.base | tck-base | org.apache.grails.data | grails-datamapping-tck-base | grails-data-mapping | ||
org.grails.tck.base | tck-domains | org.apache.grails.data | grails-datamapping-tck-domains | grails-data-mapping | ||
org.grails.tck.base | tck-tests | org.apache.grails.data | grails-datamapping-tck-tests | grails-data-mapping | ||
org.grails | grails-gorm-testing-support | org.apache.grails | grails-testing-support-datamapping | grails-data-mapping | ||
org.grails | grails-datastore-gorm-validation | org.apache.grails.data | grails-datamapping-validation | grails-data-mapping | ||
org.grails.plugins | mongodb | org.apache.grails | grails-data-mongodb | grails-data-mapping | ||
org.grails.plugins | views-json-templates | org.apache.grails | grails-data-mongodb-gson-templates | grails-data-mapping | ||
org.grails | gorm-mongodb-spring-boot | org.apache.grails | grails-data-mongodb-spring-boot | grails-data-mapping | ||
org.grails | grails-datastore-gorm-simple | org.apache.grails.data | grails-data-simple | grails-data-mapping | ||
org.grails | grails-plugin-databinding | org.apache.grails | grails-databinding | grails-core | ||
org.grails | grails-databinding | org.apache.grails.databinding | grails-databinding-core | grails-core | ||
org.grails | grails-plugin-datasource | org.apache.grails | grails-datasource | grails-core | ||
org.grails | grails-datastore-async | org.apache.grails.data | grails-datastore-async | grails-data-mapping | ||
org.grails | grails-datastore-core | org.apache.grails.data | grails-datastore-core | grails-data-mapping | ||
org.grails | grails-datastore-web | org.apache.grails.data | grails-datastore-web | grails-data-mapping | ||
org.grails | grails-dependencies | org.apache.grails | grails-dependencies | grails-core | ||
org.grails | grails-docs | org.apache.grails | grails-docs-core | grails-core | ||
org.grails | grails-plugin-domain-class | org.apache.grails | grails-domain-class | grails-core | ||
org.grails | grails-encoder | org.apache.grails.web | grails-encoder | grails-core | ||
org.grails.plugins | events | org.apache.grails | grails-events | grails-core | ||
org.grails | grails-events | org.apache.grails.events | grails-events-core | grails-core | ||
org.grails | grails-events-compat | org.apache.grails.events | grails-events-compat | grails-core | ||
org.grails | grails-events-gpars | org.apache.grails.events | grails-events-gpars | grails-core | ||
org.grails | grails-events-rxjava | org.apache.grails.events | grails-events-rxjava | grails-core | ||
org.grails | grails-events-rxjava2 | org.apache.grails.events | grails-events-rxjava2 | grails-core | ||
org.grails | grails-events-rxjava3 | org.apache.grails.events | grails-events-rxjava3 | grails-core | ||
org.grails | grails-events-spring | org.apache.grails.events | grails-events-spring | grails-core | ||
org.grails | grails-events-transform | org.apache.grails.events | grails-events-transforms | grails-core | ||
org.grails.plugins | fields | org.apache.grails | grails-fields | grails-views | ||
org.grails.plugins | geb | org.apache.grails | grails-geb | grails-geb | ||
org.grails | grails-gradle-model | org.apache.grails.gradle | grails-gradle-model | grails-core | ||
org.grails.plugins | gsp | org.apache.grails | grails-gsp | grails-views | ||
org.grails | grails-gsp | org.apache.grails.views | grails-gsp-core | grails-views | ||
org.grails | grails-logging | org.apache.grails | grails-logging | grails-core | ||
org.grails | grails-plugin-i18n | org.apache.grails | grails-i18n | grails-core | ||
org.grails | grails-plugin-interceptors | org.apache.grails | grails-interceptors | grails-core | ||
org.grails | grails-plugin-mimetypes | org.apache.grails | grails-mimetypes | grails-core | ||
org.grails.plugins | quartz | org.apache.grails | grails-quartz | grails-quartz | ||
org.grails.plugins | grails-redis | org.apache.grails | grails-redis | grails-redis | ||
org.grails | grails-plugin-rest | org.apache.grails | grails-rest-transforms | grails-core | ||
org.grails.plugins | scaffolding | org.apache.grails | grails-scaffolding | grails-views | ||
org.grails | grails-plugin-services | org.apache.grails | grails-services | grails-core | ||
org.grails | grails-shell | org.apache.grails | grails-shell-cli | grails-core | ||
org.grails | grails-plugin-sitemesh3 | org.apache.grails | grails-sitemesh3 | grails-views | ||
org.grails | grails-spring | org.apache.grails | grails-spring | grails-core | ||
org.grails.plugins | spring-security-acl | org.apache.grails | grails-spring-security-acl | grails-spring-security | ||
org.grails.plugins | spring-security-cas | org.apache.grails | grails-spring-security-cas | grails-spring-security | ||
org.grails.plugins | spring-security-core | org.apache.grails | grails-spring-security | grails-spring-security | ||
org.grails.plugins | spring-security-ldap | org.apache.grails | grails-spring-security-ldap | grails-spring-security | ||
org.grails.plugins | spring-security-oauth2 | org.apache.grails | grails-spring-security-oauth2 | grails-spring-security | ||
org.grails.plugins | spring-security-rest | org.apache.grails | grails-spring-security-rest | grails-spring-security | ||
org.grails.plugins | spring-security-rest-gorm | org.apache.grails | grails-spring-security-rest-datamapping | grails-spring-security | ||
org.grails.plugins | spring-security-rest-grailscache | org.apache.grails | grails-spring-security-grails-cache | grails-spring-security | ||
org.grails.plugins | spring-security-rest-memcached | org.apache.grails | grails-spring-security-rest-memcached | grails-spring-security | ||
org.grails.plugins | spring-security-rest-redis | org.apache.grails | grails-spring-security-rest-redis | grails-spring-security | ||
org.grails.plugins | spring-security-ui | org.apache.grails | grails-spring-security-ui | grails-spring-security | ||
org.grails | grails-taglib | org.apache.grails.views | grails-taglib | grails-views | ||
org.grails | grails-test | org.apache.grails.testing | grails-test-core | grails-core | ||
org.grails | grails-testing-support | org.apache.grails.testing | grails-testing-support-core | grails-core | ||
org.grails | grails-plugin-url-mappings | org.apache.grails | grails-url-mappings | grails-core | ||
org.grails | grails-plugin-validation | org.apache.grails | grails-validation | grails-core | ||
org.grails | views-core | org.apache.grails.views | grails-views-core | grails-views | ||
org.grails.plugins | views-json | org.apache.grails.views | grails-views-gson | grails-views | ||
org.grails | views-json-testing-support | org.apache.grails | grails-testing-support-views-gson | grails-views | ||
org.grails | views-markup | org.apache.grails | grails-views-markup | grails-views | ||
org.grails | grails-web | org.apache.grails.web | grails-web-core | grails-core | ||
org.grails | grails-web-boot | org.apache.grails | grails-web-boot | grails-core | ||
org.grails | grails-web-common | org.apache.grails.web | grails-web-common | grails-core | ||
org.grails | grails-web-databinding | org.apache.grails.web | grails-web-databinding | grails-core | ||
org.grails | grails-web-gsp | org.apache.grails.views | grails-web-gsp | grails-views | ||
org.grails | grails-web-gsp-taglib | org.apache.grails.views | grails-web-gsp-taglib | grails-views | ||
org.grails | grails-web-jsp | org.apache.grails.views | grails-web-jsp | grails-views | ||
org.grails | grails-web-mvc | org.apache.grails.web | grails-web-mvc | grails-core | ||
org.grails | grails-web-taglib | org.apache.grails.views | grails-web-taglib | grails-views | ||
org.grails | grails-web-testing-support | org.apache.grails | grails-testing-support-web | grails-views | ||
org.grails | grails-web-url-mappings | org.apache.grails.web | grails-web-url-mappings | grails-core | ||
PROFILES | ||||||
org.grails.profiles | angular | org.apache.grails.profiles | angular | grails-profiles | ||
org.grails.profiles | base | org.apache.grails.profiles | base | grails-profiles | ||
org.grails.profiles | plugin | org.apache.grails.profiles | plugin | grails-profiles | ||
org.grails.profiles | profile | org.apache.grails.profiles | profile | grails-profiles | ||
org.grails.profiles | react | org.apache.grails.profiles | react | grails-profiles | ||
org.grails.profiles | rest-api | org.apache.grails.profiles | rest-api | grails-profiles | ||
org.grails.profiles | rest-api-plugin | org.apache.grails.profiles | rest-api-plugin | grails-profiles | ||
org.grails.plugins | spring-security-rest-testapp-profile | org.apache.grails.profiles | spring-security-rest-testapp | grails-spring-security | ||
org.grails.profiles | vue | org.apache.grails.profiles | vue | grails-profiles | ||
org.grails.profiles | web | org.apache.grails.profiles | web | grails-profiles | ||
org.grails.profiles | web-plugin | org.apache.grails.profiles | web-plugin | grails-profiles | ||
GRADLE | ||||||
org.grails | grails-gradle-plugin | org.apache.grails | grails-gradle-plugins | grails-gradle-plugin | ||
org.grails.grails-core | org.grails.grails-core.gradle.plugin | org.apache.grails.gradle.grails-app | org.apache.grails.gradle.grails-app.gradle.plugin | grails | grails-app | grails-gradle-plugin |
org.grails.grails-doc | org.grails.grails-doc.gradle.plugin | org.apache.grails.gradle.grails-docs | org.apache.grails.gradle.grails-docs.gradle.plugin | grails-doc | grails-docs | grails-gradle-plugin |
org.grails.grails-gsp | org.grails.grails-gsp.gradle.plugin | org.apache.grails.gradle.grails-gsp | org.apache.grails.gradle.grails-gsp.gradle.plugin | grails-gsp | grails-gsp | grails-gradle-plugin |
org.grails.grails-plugin | org.grails.grails-plugin.gradle.plugin | org.apache.grails.gradle.grails-plugin | org.apache.grails.gradle.grails-plugin.gradle.plugin | grails-plugin | grails-plugin | grails-gradle-plugin |
org.grails.grails-profile | org.grails.grails-profile.gradle.plugin | org.apache.grails.gradle.grails-profile | org.apache.grails.gradle.grails-profile.gradle.plugin | grails-profile | grails-profile | grails-gradle-plugin |
org.grails.grails-profile-publish | org.grails.grails-profile-publish.gradle.plugin | org.apache.grails.gradle.grails-publish-profile | org.apache.grails.gradle.grails-publish-profile.gradle.plugin | grails-profile-publish | grails-publish-profile | grails-gradle-plugin |
org.grails.grails-publish | org.grails.grails-publish.gradle.plugin | org.apache.grails.gradle.grails-publish | org.apache.grails.gradle.grails-publish.gradle.plugin | grails-publish | grails-publish | grails-gradle-plugin |
org.grails.plugins.views-json | org.grails.plugins.views-json.gradle.plugin | org.apache.grails.gradle.grails-json | org.apache.grails.gradle.grails-gson.gradle.plugin | views-json | grails-gson | grails-gradle-plugin |
org.grails.plugins.views-markup | org.grails.plugins.views-markup.gradle.plugin | org.apache.grails.gradle.grails-markup | org.apache.grails.gradle.grails-markup.gradle.plugin | views-markup | grails-markup | grails-gradle-plugin |
org.grails.grails-web | org.grails.grails-web.gradle.plugin | org.apache.grails.gradle.grails-web | org.apache.grails.gradle.grails-web.gradle.plugin | grails-web | grails-web | grails-gradle-plugin |
FORGE | ||||||
org.grails.forge | grails-forge-api | org.apache.grails.forge | grails-forge-api | grails-forge | ||
org.grails.forge | grails-cli | org.apache.grails.forge | grails-forge-cli | grails-forge | ||
org.grails.forge | grails-forge-core | org.apache.grails.forge | grails-forge-core | grails-forge |
https://docs.gradle.org/current/userguide/plugins.html#sec:plugin_markers
Since the plugins{}
DSL block only allows for declaring plugins by their globally unique plugin id and version
properties, Gradle needs a way to look up the coordinates of the plugin implementation artifact.
To do so, Gradle will look for a Plugin Marker Artifact with the coordinates
plugin.id:plugin.id.gradle.plugin:plugin.version
. This marker needs to have a dependency on the actual plugin
implementation.