No Maintenance Intended

No Maintenance Intended

You are welcome to fork this project if desired, but the original author isn't planning on further contributing to it. You might consider trying JBake (related blog post) or Grain instead.


The Site plugin is a Gradle plugin for publishing static HTML websites. It is available for use under the Apache License, Version 2.0.

Build Status


The plugin is distributed via Bintray. If desired, you can use the Bintray plugin to simplify the configuration of Bintray repositories within Gradle build scripts.


To use the plugin, configure your build.gradle based the example below. See the CHANGES file for a listing of versions.

buildscript {
    repositories {
        maven {
            name = 'BintrayJCenter'
            url = ''
    dependencies {
        classpath 'us.carrclan.david.gradle:gradle-site-plugin:VERSION'
apply plugin: 'site'

Source sets

The Site plugin adds a site source set. This source set works in the same manner as with other plugins, though our interest is primarily in the resources.


The Site plugin adds a couple tasks to your project, as shown below.

Task name Depends on Type Description
processSiteResources - Copy Copies site resources into the site resources output directory.
buildSite processSiteResources Task Builds the site.
publishSite buildSite PublishSite Uploads the site resources output.

Project Layout

The Site plugin assumes the project layout shown below.

Directory Meaning
src/site/resources Site resources

Changing the project layout

You can configure the project layout by configuring the source set. Below is a brief example that changes the site resources directory to be a direct child of the project root.


sourceSets {
    site {
        resources {
            srcDir 'website'

Extension Properties

The Site plugin adds a site extension to the project. You can use its properties to customize the behavior of the plugin's tasks.

Property name Type Default value Description
sourceSet SourceSet The source set to use for site tasks.
url String None The URL to which the site should be published.
authenticationInfo AuthenticationInfo None The authentication information with to use when publishing the site.

Configuration Example


site {
    url = 's'
    authenticationInfo {
        userName = 'joe'
        password = 'secretPassword'


The Site plugin uses the Copy task for resource handling. See the Gradle User Guide for more information.

Task Property Type Default Value
srcDirs Object site.sourceSet.resources
destinationDir File site.sourceSet.output.resourceDir


The Site plugin uses Maven Wagon to provide site publishing capability over a number of different protocols. Currently, only the SFTP provider has been tested, though others (HTTP, FTP, SCP, WebDAV, file) may work as well.

Task Property Type Default Value
baseDir File site.sourceSet.output.resourceDir
url String site.url
authenticationInfo AuthenticationInfo site.authenticationInfo

Plugins with support for the Site plugin