All Projects → gradle-guides → Gradle Site Plugin

gradle-guides / Gradle Site Plugin

Licence: apache-2.0
Documents Gradle tasks and plugins registered by your Gradle project

Programming Languages

kotlin
9241 projects

Projects that are alternatives of or similar to Gradle Site Plugin

Codeanalysis
Android静态代码分析
Stars: ✭ 31 (-62.65%)
Mutual labels:  gradle-plugin
Licensechecker
Gradle plugin to check that all Open Source Libraries in a project have been attributed
Stars: ✭ 52 (-37.35%)
Mutual labels:  gradle-plugin
Gradle Semantic Build Versioning
Gradle plugin to generate version-numbers and tags using semantic versioning
Stars: ✭ 69 (-16.87%)
Mutual labels:  gradle-plugin
Gradle Docker Plugin
Gradle plugin for managing Docker images and containers.
Stars: ✭ 994 (+1097.59%)
Mutual labels:  gradle-plugin
Onesignal Gradle Plugin
Use with OneSignal-Android-SDK to help integrate it into your Android Studio or Gradle project. https://onesignal.com
Stars: ✭ 49 (-40.96%)
Mutual labels:  gradle-plugin
Module Service Manager
Android模块化/组件化通信框架
Stars: ✭ 58 (-30.12%)
Mutual labels:  gradle-plugin
Soapui Gradle Plugin
SoapUI Gradle Plugin
Stars: ✭ 14 (-83.13%)
Mutual labels:  gradle-plugin
Apkscale
A Gradle plugin to measure the app size impact of Android libraries
Stars: ✭ 76 (-8.43%)
Mutual labels:  gradle-plugin
Auto Manifest
Generates AndroidManifest.xml in simple libraries so that you don't have to
Stars: ✭ 51 (-38.55%)
Mutual labels:  gradle-plugin
Gradle Clover Plugin
Gradle plugin for generating a code coverage report using Clover
Stars: ✭ 67 (-19.28%)
Mutual labels:  gradle-plugin
Hunter
A fast, incremental, concurrent framework to develop compile plugin for android project to manipulate bytecode
Stars: ✭ 999 (+1103.61%)
Mutual labels:  gradle-plugin
Enigma
Gradle Plugin - Obfuscator String Encryption (Android/Java)
Stars: ✭ 43 (-48.19%)
Mutual labels:  gradle-plugin
Gradle Archetype Plugin
Gradle plugin that creates projects from your own cookiecutter
Stars: ✭ 61 (-26.51%)
Mutual labels:  gradle-plugin
Gradle Xjc Plugin
A Gradle plugin to run the XJC binding compiler during a build
Stars: ✭ 38 (-54.22%)
Mutual labels:  gradle-plugin
Gradle Android Javadoc Plugin
Gradle plugin that generates Java Documentation from an Android Gradle project.
Stars: ✭ 73 (-12.05%)
Mutual labels:  gradle-plugin
Gradle Teamcity Plugin
Gradle plugin for developing TeamCity plugins
Stars: ✭ 30 (-63.86%)
Mutual labels:  gradle-plugin
Gradle S3 Build Cache
An AWS S3 Gradle build cache implementation
Stars: ✭ 54 (-34.94%)
Mutual labels:  gradle-plugin
Gradle Android Apk Size Plugin
Gradle plugin that generates CSV files with apk size per output and variant of an apk
Stars: ✭ 79 (-4.82%)
Mutual labels:  gradle-plugin
Debug Badge
Add badge(version code, version name, etc) for your DEBUG APK.
Stars: ✭ 75 (-9.64%)
Mutual labels:  gradle-plugin
Gradle Gae Plugin
Gradle plugin that provides tasks for uploading, running and managing Google App Engine projects
Stars: ✭ 62 (-25.3%)
Mutual labels:  gradle-plugin

:maven-metadata: plugins.gradle.org/m2/gradle/plugin/org/gradle/plugins/gradle-site-plugin :travis: https://travis-ci.org/gradle-guides/gradle-site-plugin :gradle-plugins-portal: https://plugins.gradle.org/plugin/gradle.site

= Gradle Site Plugin image:{travis}.svg?branch=master["Build Status", link="{travis}"] image:https://img.shields.io/badge/build-scan-green.svg["Build Scan", link="https://gradle.com/s/thgfe3dxihijo"] image:https://img.shields.io/maven-metadata/v/https/{maven-metadata}/maven-metadata.xml.svg?label=gradlePluginPortal["Maven Central",link="{gradle-plugins-portal}"]

A sample Gradle plugin demonstrating established techniques and practices for plugin development as described in the following guides:

== Functionality

The plugin provides a task for generating a web page that derives information about the project e.g. applied plugins and available tasks. While minimalistic in functionality it serves as a show case for demonstrating best practices for Gradle plugin development. A site generated for this project can be link:https://gradle-guides.github.io/gradle-site-plugin/[viewed here].

TIP: The plugin is link:{gradle-plugins-portal}[available on the Gradle plugin portal] for public consumption.

== Usage example

The plugin can be applied with by identifier gradle.site. Default values can be configured with the help of the provided extension org.gradle.plugins.site.SitePluginExtension. To generate the web page run the task named generateSite e.g. gradle generateSiteHtml.

IMPORTANT: The plugin requires a Gradle version of 4.0 or higher. All features that are based on Gradle 4.0 are explicitly marked above. All other features will work with earlier versions of Gradle.

plugins {
    id("gradle.site").version("0.6")
}

site {
    outputDir.set(file("$rootDir/docs"))
    websiteUrl.set("https://mysite.com")
    vcsUrl.set("https://github.com/my/repo.git")
}

== Applied techniques and practices

  • Production and test code written in Kotlin.
  • Reusable logic written as binary plugin.
  • Usage of the Plugin Development plugin to simplify plugin development. [link:https://github.com/gradle-guides/gradle-site-plugin/blob/master/build.gradle.kts#L6[Code] | link:https://guides.gradle.org/implementing-gradle-plugins/#plugin-development-plugin[More Details]]
  • Implementation of tasks as custom task type. [link:https://github.com/gradle-guides/gradle-site-plugin/blob/master/src/main/kotlin/org/gradle/plugins/site/tasks/SiteGenerate.kt[Code] | link:https://guides.gradle.org/implementing-gradle-plugins/#writing-and-using-custom-task-types[More Details]]
  • Usage of input and output properties to enable incremental tasks. [link:https://github.com/gradle-guides/gradle-site-plugin/blob/master/src/main/kotlin/org/gradle/plugins/site/tasks/SiteGenerate.kt[Code] | link:https://guides.gradle.org/implementing-gradle-plugins/#benefiting_from_incremental_tasks[More Details]]
  • Usage of an extension to capture user-configurable values. [link:https://github.com/gradle-guides/gradle-site-plugin/blob/master/src/main/kotlin/org/gradle/plugins/site/SitePlugin.kt#L33[Code] | link:https://guides.gradle.org/designing-gradle-plugins/#convention_over_configuration[More Details]]
  • Mapping of extension property values to custom task properties. [link:https://github.com/gradle-guides/gradle-site-plugin/blob/master/src/main/kotlin/org/gradle/plugins/site/SitePlugin.kt#L74-L76[Code] | link:https://guides.gradle.org/implementing-gradle-plugins/#capturing_user_input_to_configure_plugin_runtime_behavior[More Details]] image:https://img.shields.io/badge/4.0-feature-blue.svg[4.0 feature]
  • Reacting to plugins instead of applying plugins. [link:https://github.com/gradle-guides/gradle-site-plugin/blob/master/src/main/kotlin/org/gradle/plugins/site/SitePlugin.kt#L64[Code] | link:https://guides.gradle.org/implementing-gradle-plugins/#reacting_to_plugins[More Details]]
  • Declaration of appropriate plugin identifiers. [link:https://github.com/gradle-guides/gradle-site-plugin/blob/master/src/main/resources/META-INF/gradle-plugins/gradle.site.properties[Code] | link:https://guides.gradle.org/implementing-gradle-plugins/#assigning_appropriate_plugin_identifiers[More Details]]
  • Functional testing with TestKit. [link:https://github.com/gradle-guides/gradle-site-plugin/blob/master/src/intTest/kotlin/org/gradle/plugins/site/SitePluginFunctionalTest.kt[Code] | link:https://docs.gradle.org/current/userguide/test_kit.html[More Details]]
  • Publication of the plugin artifacts to the Gradle plugin portal [link:https://github.com/gradle-guides/gradle-site-plugin/blob/master/build.gradle.kts#L136-L163[Code] | link:https://guides.gradle.org/publishing-plugins-to-gradle-plugin-portal/[More Details]]
  • Continuous Integration of plugin code with link:https://travis-ci.org/[Travis CI]. [link:https://github.com/gradle-guides/gradle-site-plugin/blob/master/.travis.yml[Code] | More Details]
  • Automatic generation of build scans when build is executed from CI. [link:https://github.com/gradle-guides/gradle-site-plugin/blob/master/build.gradle.kts#L25-L33[Code] | link:https://scans.gradle.com/[More Details]]
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].