The Jayne Site project 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:jayne-site:VERSION'
apply plugin: 'jayne-site'

Source sets

The Jayne Site plugin adds a site source set. This source set works in the same manner as with other plugins.


The Jayne 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.
lessCompileSite - LessCompile Compiles the site LESS files.
buildSite processSiteResources, lessCompileSite Task Builds the site.
publishSite buildSite PublishSite Uploads the site resources output.

Project Layout

The Jayne Site plugin assumes the project layout shown below.

Directory Meaning
src/site/resources Site resources
src/site/less Site LESS files

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 Jayne 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


The plugin introduces a new task type, LessCompile, which performs LESS compilation using lesscss-java.

Task Property Type Description
sourceDir Object The path to the LESS source files to compile.
destinationDir File The destination for the compiled CSS files.
encoding String The encoding with with to write the CSS files.
compress Boolean Whether to enable the LESS compiler's minification.

Task Defaults: lessCompileSite

Task Property Type Default Value
sourceDir Object "src/site/less"
destinationDir File "${site.sourceSet.output.resourceDir}/css"
encoding String None
compress Boolean None