{"id":21981795,"url":"https://github.com/gmullerb/base-style-config-wrapper","last_synced_at":"2026-04-17T00:34:13.897Z","repository":{"id":96572270,"uuid":"152626545","full_name":"gmullerb/base-style-config-wrapper","owner":"gmullerb","description":"A Gradle wrapper for 'base-style-config' configurations","archived":false,"fork":false,"pushed_at":"2019-08-15T17:05:51.000Z","size":122,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-04T03:21:54.973Z","etag":null,"topics":["backend-code","base-style-config","best-practices","build-code","checkstyle","code-style","codenarc","coding-standards","coding-style","end-of-file-checking","eslint","frontend-code","gradle-code","groovy","java","javascript","pmd","stylelint","tab-character","tabulation-checking"],"latest_commit_sha":null,"homepage":null,"language":"Groovy","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gmullerb.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-10-11T17:00:28.000Z","updated_at":"2019-08-15T17:05:53.000Z","dependencies_parsed_at":"2023-04-22T21:16:08.256Z","dependency_job_id":null,"html_url":"https://github.com/gmullerb/base-style-config-wrapper","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/gmullerb/base-style-config-wrapper","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gmullerb%2Fbase-style-config-wrapper","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gmullerb%2Fbase-style-config-wrapper/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gmullerb%2Fbase-style-config-wrapper/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gmullerb%2Fbase-style-config-wrapper/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gmullerb","download_url":"https://codeload.github.com/gmullerb/base-style-config-wrapper/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gmullerb%2Fbase-style-config-wrapper/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31910165,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-16T18:22:33.417Z","status":"ssl_error","status_checked_at":"2026-04-16T18:21:47.142Z","response_time":69,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["backend-code","base-style-config","best-practices","build-code","checkstyle","code-style","codenarc","coding-standards","coding-style","end-of-file-checking","eslint","frontend-code","gradle-code","groovy","java","javascript","pmd","stylelint","tab-character","tabulation-checking"],"created_at":"2024-11-29T17:19:40.110Z","updated_at":"2026-04-17T00:34:13.863Z","avatar_url":"https://github.com/gmullerb.png","language":"Groovy","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Base Style Configuration Wrapper\n\n[![license](https://img.shields.io/github/license/mashape/apistatus.svg)](/LICENSE.txt) \n[![Download](https://api.bintray.com/packages/gmullerb/all.shared.gradle/base-style-config-wrapper/images/download.svg)](https://bintray.com/gmullerb/all.shared.gradle/base-style-config-wrapper/_latestVersion) \n[![coverage report](https://gitlab.com/gmullerb/base-style-config-wrapper/badges/master/coverage.svg)](https://gitlab.com/gmullerb/base-style-config-wrapper/commits/master)\n\n**A Gradle plugin that offers a wrapper for [base-style-config](https://github.com/gmullerb/base-style-config) configurations**.\n\nThis project is licensed under the terms of the [MIT license](/LICENSE.txt).\n__________________\n\n## Quick Start\n\n1 . Apply the plugin:\n\n```gradle\n plugins {\n   id 'all.shared.gradle.base-style-config-wrapper' version '2.0.0'\n }\n```\n\n2 . Set the [base-style-config](https://github.com/gmullerb/base-style-config) version:\n\n`gradle.properties`:\n\n```properties\n BASE_STYLE_CONFIG_VERSION=2.0.1\n```\n\n3 . Provide the versions of Checkstyle, PMD and Codenarc:\n\n* `base-style-config-wrapper` will be automatically configure Checkstyle, PMD and Codenarc plugins if they are applied to the project:\n\n`gradle.properties`:\n\n```properties\n  CHECKSTYLE_VERSION=8.18\n  PMD_VERSION=6.13.0\n  CODENARC_VERSION=1.3\n\n```\n\n4 . Optionally, configure Checkstyle, PMD, Codenarc, ESlint and/or Stylelint tasks individually:\n\nCheckstyle/PMD/Codenarc:\n\n`build.gradle`:\n\n```gradle\n  task someCheckStyleTask (type: Checkstyle) {\n    config = baseStyleConfig.java.checkstyleConfig\n    ..\n  }\n```\n\nESlint:\n\n`build.gradle`:\n\n```gradle\n  task assessSomeESLint(type: NpmTask) {\n    args = ['run', 'someESlintTask', baseStyleConfig.js.eslintNpmConfigArg]\n  }\n```\n\nand\n\n`package.json`:\n\n```json\n  \"scripts\": {\n    \"someESlintTask\": \"eslint --config ${npm_config_eslintConfigFile}\",\n  },\n```\n\nor Typescript ESlint:\n\n`build.gradle`:\n\n```gradle\n  task assessSomeESLint(type: NpmTask) {\n    args = ['run', 'someESlintTask', baseStyleConfig.js.tsEslintNpmConfigArg]\n  }\n```\n\nand\n\n`package.json`:\n\n```json\n  \"scripts\": {\n    \"someESlintTask\": \"eslint --config ${npm_config_tsEslintConfigFile}\",\n  },\n```\n\n5 . Jump to [Features](#Features), for customization or digging on How it works.\n__________________\n\n## Goals\n\n* Have a wrapper for [base-style-config](https://github.com/gmullerb/base-style-config) configurations in order to make a quick and easy use of it in Gradle.\n* Automatically configure Checkstyle, PMD and Codenarc plugins if they are applied to the project.\n  * Setting Tool version.\n  * Setting Rules to use with tool.\n\n## Features\n\n1 . Complements the Gradle project with **`baseStyleConfig`** extension that provides the following fields:\n\n* `common` with the following:\n  * `checkstyleConfig`: a value which wraps [Common Checkstyle's set - common-checks.xml](https://github.com/gmullerb/base-style-config/tree/master/src/config/common/common-checks.xml).\n  * `checkstyleConfigFile`: a value which point to the file of `checkstyleConfig`.\n* `back` with the following:\n  * `checkstyleConfig`: a value which wraps [Checkstyle's set - coding-checks.xml](https://github.com/gmullerb/base-style-config/tree/master/src/config/java/coding-checks.xml).\n  * `checkstyleConfigFile`: a value which point to the file of `checkstyleConfig`.\n  * `checkstyleSuppressionConfig`: a value which wraps [Checkstyle's suppressions - checks-suppressions.xml](https://github.com/gmullerb/base-style-config/tree/master/src/config/java/checks-suppressions.xml).\n  * `checkstyleSuppressionConfigFile`: a value which point to the file of `checkstyleSuppressionConfig`.\n  * `pmdConfig`: value which wraps [PMD's set - coding-rules.xml](https://github.com/gmullerb/base-style-config/tree/master/src/config/java/coding-rules.xml).\n  * `pmdConfigFile`: a value which point to the file of `pmdConfig`.\n  * `complement(checkstyleExtension)`, complements the specified [Checkstyle's extension](https://docs.gradle.org/current/dsl/org.gradle.api.plugins.quality.CheckstyleExtension.html):\n    * Sets the `config` property to [Checkstyle's set - coding-checks.xml](https://github.com/gmullerb/base-style-config/tree/master/src/config/java/coding-checks.xml).\n    * Adds `suppressionFile` property to the `configProperties` pointing to [Checkstyle's suppressions - checks-suppressions.xml](https://github.com/gmullerb/base-style-config/tree/master/src/config/java/checks-suppressions.xml).\n  * `complement(checkstyleTask)`, complements the specified [Checkstyle's task](https://docs.gradle.org/current/dsl/org.gradle.api.plugins.quality.Checkstyle.html):\n    * Sets the `config` property to [Checkstyle's set - coding-checks.xml](https://github.com/gmullerb/base-style-config/tree/master/src/config/java/coding-checks.xml).\n    * Adds `suppressionFile` property to the `configProperties` pointing to [Checkstyle's suppressions - checks-suppressions.xml](https://github.com/gmullerb/base-style-config/tree/master/src/config/java/checks-suppressions.xml).\n  * `complement(pmdExtension)`, complements the specified [PMD's extension](https://docs.gradle.org/current/dsl/org.gradle.api.plugins.quality.PmdExtension.html):\n    * Sets the `ruleSetConfig` property to [PMD's set - coding-rules.xml](https://github.com/gmullerb/base-style-config/tree/master/src/config/java/coding-rules.xml).\n    * Sets the `ruleSets` property to an empty `Set` (required with new PMD version).\n  * `complement(pmdTask)`, complements the specified [PMD's task](https://docs.gradle.org/current/dsl/org.gradle.api.plugins.quality.Pmd.html):\n    * Sets the `ruleSetConfig` property to [PMD's set - coding-rules.xml](https://github.com/gmullerb/base-style-config/tree/master/src/config/java/coding-rules.xml).\n    * Sets the `ruleSets` property to an empty `Set` (required with new PMD version).\n  * `codenarcConfig`: a value which wraps [Codenarc's set - gradle-rules.groovy](https://github.com/gmullerb/base-style-config/tree/master/src/config/groovy/groovy-rules.groovy).\n  * `codenarcConfigFile`: a value which point to the file of `codenarcConfig`.\n  * `complement(codenarcExtension)`: sets the `config` property of the specified [Codenarc's extension](https://docs.gradle.org/current/dsl/org.gradle.api.plugins.quality.CodeNarcExtension.html) to point to [Codenarc's set - gradle-rules.groovy](https://github.com/gmullerb/base-style-config/tree/master/src/config/groovy/groovy-rules.groovy).\n  * `complement(codenarcTask)`: sets the `config` property of the specified [Codenarc's task](https://docs.gradle.org/current/dsl/org.gradle.api.plugins.quality.CodeNarc.html) to point to [Codenarc's set - gradle-rules.groovy](https://github.com/gmullerb/base-style-config/tree/master/src/config/groovy/groovy-rules.groovy).\n* `front` with the following values:\n  * `eslintConfig`: a value which wraps [ESLint's set - .eslintrc.json](https://github.com/gmullerb/base-style-config/tree/master/src/config/js/.eslintrc.json).\n  * `eslintConfigFile`: value which point to the file of `eslintConfig`.\n  * `eslintNpmConfigArg`: an array that can be use directly with [`NpmTask`](https://github.com/srs/gradle-node-plugin) `args`, it contains a string, `\"--eslintConfigFile=eslintConfigFile\"`, which points to `eslintConfigFile`.\n  * `tsEslintConfig`: a value which wraps [ESLint's Typescript set - .typescript-eslintrc.json](https://github.com/gmullerb/base-style-config/tree/master/src/config/js/.typescript-eslintrc.json).\n  * `tsEslintConfigFile`: value which point to the file of `tsEslintConfig`.\n  * `tsEslintNpmConfigArg`: an array that can be use directly with [`NpmTask`](https://github.com/srs/gradle-node-plugin) `args`, it contains a string, `\"--tsEslintConfigFile=tsEslintConfigFile\"`, which points to `tsEslintConfigFile`.\n* `autoComplement`: indicates if plugins Checkstyle, PMD and Codenarc plugins should be automatically complemented with [Base Style rules](https://github.com/gmullerb/base-style-config).\n\n2 . Additionally, It allows to configure the with BASE_STYLE_CONFIG_VERSION:\n\nUse `BASE_STYLE_CONFIG_VERSION` to set the [Base Style Configuration](https://github.com/gmullerb/base-style-config) version to use:\n\n* If not set last version will be used.\n\n`gradle.properties`:\n\n```properties\n BASE_STYLE_CONFIG_VERSION=2.0.1\n```\n\n3 . And allows to configure versions of Checkstyle, PMD and Codenarc plugins using `CHECKSTYLE_VERSION`, `PMD_VERSION` and `CODENARC_VERSION` properties, respectively:\n\n`gradle.properties`:\n\n```properties\n  CHECKSTYLE_VERSION=8.18\n  PMD_VERSION=6.13.0\n  CODENARC_VERSION=1.3\n\n```\n* If not set, Versions defined by Gradle will be used.\n* At the present, should be set in order to be compatible with the set of rules defined by [Base Style Configuration](https://github.com/gmullerb/base-style-config)\n__________________\n\n## Using/Configuration\n\n### Prerequisites\n\n* None\n\n### Gradle configuration\n\nApply the plugin [1]:\n\n```gradle\n plugins {\n   id 'all.shared.gradle.base-style-config-wrapper' version '2.0.0'\n }\n```\n\n\u003e [1] Alternatively, use the [project-style-checker Gradle plugin](https://github.com/gmullerb/project-style-checker), which wraps this plugin.\n\n### Common checkstyle configuration\n\n1 . Configure plugin:\n\n```gradle\n  checkstyle {\n    config = baseStyleConfig.common.checkstyleConfig\n  }\n```\n\nor\n\n```gradle\n  task someCheckStyleTask (type: Checkstyle) {\n    config = baseStyleConfig.common.checkstyleConfig\n    ..\n  }\n```\n\n2 . Define a Checkstyle task to check \"all\" files in the project tree, e.g.: [file-lister project - build.gradle file - assessCommon task](https://github.com/gmullerb/file-lister/blob/master/build.gradle).\n\n### Java\n\n#### Checkstyle/PMD plugin\n\nThis automatically done by `base-style-config-wrapper` if `autoComplement` is set to `true`(which is the default), if not:\n\n```gradle\n  checkstyle {\n    config = baseStyleConfig.java.checkstyleConfig\n    configProperties.suppressionFile = baseStyleConfig.java.checkstyleSuppressionConfigFile.path\n  }\n\n  pmd {\n    ruleSets = [] // required with new PMD version\n    ruleSetConfig = baseStyleConfig.java.pmdConfig\n  }\n```\n\n  or (short way, exactly the same):\n\n```gradle\n  baseStyleConfig.java.complement(checkstyle)\n  baseStyleConfig.java.complement(pmd)\n```\n\n#### Checkstyle/PMD task\n\n```gradle\n  checkstyleMain {\n    config = baseStyleConfig.java.checkstyleConfig\n    configProperties.suppressionFile = baseStyleConfig.java.checkstyleSuppressionConfigFile.path\n  }\n\n  pmdMain {\n    ruleSets = [] // required with new PMD version\n    ruleSetConfig = baseStyleConfig.java.pmdConfig\n  }\n```\n\n  or (short way, exactly the same):\n\n```gradle\n  baseStyleConfig.java.complement(checkstyleMain)\n  baseStyleConfig.java.complement(pmdMain)\n```\n\n\u003e If using both, PMD should be run after Checkstyle, since Checkstyle is \"lighter\".  \n\u003e A complete example in [basecode project - back project](https://github.com/gmullerb/basecode/tree/master/back).\n\n### Groovy\n\n#### Codenarc plugin\n\nThis automatically done by `base-style-config-wrapper` if `autoComplement` is set to `true`(which is the default), if not:\n\n```gradle\n  codenarc {\n    config = baseStyleConfig.groovy.codenarcConfig\n  }\n```\n\n  or (short way, exactly the same):\n\n```groovy\n  baseStyleConfig.groovy.complement(codenarc)\n```\n\n#### Codenarc task\n\n```gradle\n  codenarcMain {\n    config = baseStyleConfig.groovy.codenarcConfig\n  }\n```\n\n  or (short way, exactly the same):\n\n```gradle\n  baseStyleConfig.groovy.complement(codenarcMain)\n```\n\n\u003e Gradle and Groovy have almost the same set of rules, define in the same file, see [gradle-rules.groovy](https://github.com/gmullerb/base-style-config/blob/master/src/config/groovy/groovy-rules.groovy).  \n\u003e A complete example in [file-lister project - build.gradle file](https://github.com/gmullerb/file-lister/blob/master/build.gradle).\n\n### Js configuration\n\nESLint:\n\n1 . Add a config parameter to the respective ESLint script task, e.g.:\n- eslint script task: `someEslintTask`.\n- config parameter: `eslintConfigFile`\n\n```json\n  \"scripts\": {\n    \"someESlintTask\": \"eslint --config ${npm_config_eslintConfigFile} ..\",\n  },\n```\n\n2 . Set the config parameter in the respective gradle NpmTask task:\n\n```gradle\n  task assessSomeESLint(type: NpmTask) {\n    // NpmTask task settings\n    args = ['run', 'someESlintTask', baseStyleConfig.js.eslintNpmConfigArg]\n    // gradle task settings\n    inputs.property('configFile', baseStyleConfig.js.eslintNpmConfigArg)\n    inputs.files fileLister.obtainFullFileTree(\"$MAIN_FOLDER\", [includes: ['*.js', '*.mjs']])\n  }\n```\n\nSame for Typescript ESLint:\n\n`package.json`:\n\n```json\n  \"scripts\": {\n    \"someEslintTask\": \"eslint --config ${npm_config_tsEslintConfigFile} ..\",\n  },\n```\n\n`build.gradle`:\n\n```gradle\n  task assessSomeEslint(type: NpmTask) {\n    // NpmTask task settings\n    args = ['run', 'someEslintTask', baseStyleConfig.js.tsEslintNpmConfigArg]\n    // gradle task settings\n    inputs.property('configFile', baseStyleConfig.js.tsEslintNpmConfigArg)\n    inputs.files fileLister.obtainFullFileTree(\"$MAIN_FOLDER\", [includes: ['*.ts']])\n  }\n```\n\n\u003e A complete example in [basecode project - front project](https://github.com/gmullerb/basecode/tree/master/front).\n\n### Gradle configuration\n\n1 . Configure plugin:\n\n```gradle\n  codenarc {\n    config = baseStyleConfig.groovy.codenarcConfig\n  }\n```\n\n2 . Define a Codenarc task to check all gradle files in the project tree, e.g.: [file-lister project - build.gradle file - assessGradle task](https://github.com/gmullerb/file-lister/blob/master/build.gradle).\n\n### Code Quality Tools - Version Compatibility\n\n3 . Use `BASE_STYLE_CONFIG_VERSION` to establish the version of [Base Style Configuration](https://github.com/gmullerb/base-style-config) to be used:\n\n* If not set, then last version will be used.\n\n[`gradle.properties`](gradle.properties):\n\n```properties\n BASE_STYLE_CONFIG_VERSION=2.0.1\n```\n\n4 . Use `CHECKSTYLE_VERSION` to establish the version of [Checkstyle](http://checkstyle.sourceforge.net) to be used:\n\n* If not set, Gradle's default version will be used.\n  * But, should be set in order to be compatible with the selected, `BASE_STYLE_CONFIG_VERSION`, i.e. with the selected set of rules defined by [Base Style Configuration](https://github.com/gmullerb/base-style-config).\n\n[`gradle.properties`](gradle.properties):\n\n```properties\n CHECKSTYLE_VERSION=8.18\n```\n\n5 . Use `PMD_VERSION` to establish the version of [PMD]() to be used:\n\n* If not set, Gradle's default version will be used.\n  * But, should be set in order to be compatible with the selected, `BASE_STYLE_CONFIG_VERSION`, i.e. with the selected set of rules defined by [Base Style Configuration](https://github.com/gmullerb/base-style-config).\n\n[`gradle.properties`](gradle.properties):\n\n```properties\n CHECKSTYLE_VERSION=8.18\n```\n\n6 . Use `CODENARC_VERSION` to establish the version of [CodeNarc](http://codenarc.sourceforge.net) to be used:\n\n* If not set, Gradle's default version will be used.\n  * But, should be set in order to be compatible with the selected, `BASE_STYLE_CONFIG_VERSION`, i.e. with the selected set of rules defined by [Base Style Configuration](https://github.com/gmullerb/base-style-config).\n\n[`gradle.properties`](gradle.properties):\n\n```properties\n CODENARC_VERSION=1.3\n```\n\n### Base Style Config - Version Compatibility\n\n[Versions Compatibility Table](VERSIONS_COMPATIBILITY.md)\n__________________\n\n## Extending/Developing\n\n### Prerequisites\n\n* [Java](http://www.oracle.com/technetwork/java/javase/downloads).\n* [Git](https://git-scm.com/downloads) (only if you are going to clone the project).\n\n### Getting it\n\nClone or download the project[1], in the desired folder execute:\n\n```sh\ngit clone https://github.com/gmullerb/base-style-config-wrapper\n```\n\n\u003e [1] [Cloning a repository](https://help.github.com/articles/cloning-a-repository/)\n\n### Set up\n\n* **No need**, only download and run (It's Gradle! Yes!).\n\n#### Make it your own\n\n  1. Remove the Git Origin: `git remote remove origin`.\n  2. Add your Git origin: `git remote add origin https://gitlab.com/yourUser/yourRepo.git`.\n  3. Remove the License for 'All rights reserved' projects, or Modify the License for your needs.\n  4. Change the `all.shared.gradle.qrc-file-generator.properties` file name to your plugin Id, e.g. `some.pluginId.properties`.\n\n### Building it\n\n* To build it:\n  * `gradlew`: this will run default task, or\n  * `gradlew build`.\n\n* To assess files:\n  * `gradlew assessCommon`: will check common style of files.\n  * `gradlew assessGradle`: will check code style of Gradle's.\n  * `gradlew codenarcMain`: will check code style of Groovy's source files.\n  * `gradlew codenarcTest`: will check code style of Groovy's test files.\n  * `assemble` task depends on these four tasks.\n\n* To test code: `gradlew test`\n  * This task is finalized with a Jacoco Report.\n\n* To get all the tasks for the project: `gradlew tasks --all`\n\n### Folders structure\n\n```\n  /src\n    /main\n      /groovy\n    /test\n      /groovy\n```\n\n- `src/main/groovy`: Source code files.\n  - [`BaseStyleConfigWrapper`](src/main/groovy/all/shared/gradle/quality/code/BaseStyleConfigWrapper.groovy) is where all the magic of wrapping [base-style-config](https://github.com/gmullerb/base-style-config) happens.\n  - [`BaseStyleConfigWrapperBackComplementer`](src/main/groovy/all/shared/gradle/quality/code/complement/BaseStyleConfigWrapperBackComplementer.groovy) is where all the magic for auto complementation of plugins happens.\n- `src/test/groovy`: Test code files[1].\n\n\u003e [1] Tests are done with [JUnit](http://junit.org) and [Mockito](http://javadoc.io/page/org.mockito/mockito-core/latest/org/mockito/Mockito.html).\n\n### Convention over Configuration\n\nAll `all.shared.gradle` plugins define:\n\n* _PluginName_**Plugin**: which contains the class implements `Plugin` interface.\n* _PluginName_**Extension**: which represent the extension of the plugin.\n* If Tasks are define, then their names will be _TaskName_**Task**.\n* If Actions are define, then their names will be _ActionName_**Action**.\n\nAll `all.shared.gradle` plugins have two **`static`** members:\n\n* `String EXTENSION_NAME`: This will have the name of the extension that the plugin add.\n  * if the plugin does not add an extension the this field will not exist.\n\n* `String TASK_NAME`: This will have the name of the **unique** task that the plugin add.\n  * if the plugin does not add a task or add more than one task, then this field will not exist.\n\n* `boolean complement(final ..)`: will apply the plugin and return true if successful, false otherwise.\n  * this methods is **exactly equivalent to the instance `apply` method**, but without instantiate the class if not required.\n\nBoth may be useful when applying the plugin when creating custom plugins.\n\nAll `all.shared.gradle` plugins \"silently\" fail when the extension can not be added.\n\n## Documentation\n\n* [`CHANGELOG.md`](CHANGELOG.md): add information of notable changes for each version here, chronologically ordered [1].\n\n\u003e [1] [Keep a Changelog](http://keepachangelog.com)\n\n## License\n\n[MIT License](/LICENSE.txt)\n__________________\n\n## Remember\n\n* Use code style verification tools =\u003e Encourages Best Practices, Efficiency, Readability and Learnability.\n* Start testing early =\u003e Encourages Reliability and Maintainability.\n* Code Review everything =\u003e Encourages Functional suitability, Performance Efficiency and Teamwork.\n\n## Additional words\n\nDon't forget:\n\n* **Love what you do**.\n* **Learn everyday**.\n* **Learn yourself**.\n* **Share your knowledge**.\n* **Learn from the past, dream on the future, live and enjoy the present to the max!**.\n\nAt life:\n\n* Let's act, not complain.\n* Be flexible.\n\nAt work:\n\n* Let's give solutions, not questions.\n* Aim to simplicity not intellectualism.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgmullerb%2Fbase-style-config-wrapper","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgmullerb%2Fbase-style-config-wrapper","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgmullerb%2Fbase-style-config-wrapper/lists"}