Fork of robfletcher/gradle-compass
The plugin adds the following tasks:
Compiles all SASS files. Equivalent to the compass compile
command. The task supports incremental build.
Add the plugin like this:
apply plugin: "com.github.robfletcher.compass" buildscript { repositories { jcenter() maven { url "http://dl.bintray.com/robfletcher/gradle-plugins" } } dependencies { classpath "com.github.robfletcher:compass-gradle-plugin:2.0.5" } }
General configuration for the plugin goes inside a compass
block in your build file and will apply to all tasks. You can also specify configuration properties on the individual tasks (for example you may want to set environment = "production"
on the compileSass and debugInfo = true
on watchSass). For example:
compass { cssDir = file("public/styles") sassDir = file("src/main/sass") }
The full set of parameters supported by the plugin is…
-
cssDir
: the target directory where compiled CSS is output. Equivalent to--css-dir
. Defaults tobuild/stylesheets
. -
sassDir
: the source directory where you keep .scss and/or .sass files. Equivalent to--sass-dir
. Defaults tosrc/main/sass
. -
imagesDir
: the source directory where you keep image files. Equivalent to--images-dir
. -
javascriptsDir
: the source directory where you keep JavaScript files. You don’t need to specify this unless you have Compass extensions in your scripts. Equivalent to--javascripts-dir
. -
fontsDir
: the source directory where you keep fonts. Equivalent to--fonts-dir
. -
importPath
: a set of directories containing other Sass stylesheets. Specifying this allows you to reference those stylesheets in@import
directives. Equivalent to--import-paths
. -
load
: loads a framework or extensions found in the specified directory. Equivalent to--load
. -
loadAll
: loads all frameworks or extensions found in the specified directory. Equivalent to--load-all
.
-
sourcemap
: if true Compass will generate a sourcemap during compilation. Equivaluent to--sourcemap
. -
debugInfo
: if true (the default) Compass adds debug information to the compiled CSS. Equivalent to--debug-info
if set to true or--no-debug-info
if set to false. -
force
: if true Compass will overwrite existing files. Equivalent to--force
. -
environment
: sets default options when set to 'development' (the default) or 'production'. Equivalent to--environment
. -
noLineComments
: if true Compass will not output line comments to the compiled CSS files. Equivalent to--no-line-comments
. -
outputStyle
: selects the style for compiled CSS. One of nested, expanded, compact (the default) or compressed. Eqivalent to--output-style
. -
relativeAssets
: if true Compass will generate relative urls to assets. Equivalent to--relative-assets
. -
httpPath
: sets the path to the root of the web application when deployed. Equivalent to--http-path
. -
generatedImagesPath
: sets the path where generated images are stored. Equivalent to--generated-images-path
.
-
time
: if true Compass will print timing information during compilation. Equivaluent to--time
. -
boring
: if true colorized output is disabled. Equivalent to--boring
. -
quiet
: if true Compass output is suppressed. Equivalent to--quiet
. -
trace
: if true Compass displays full stack traces on error. Equivalent to--trace
.
By default the plugin will use the latest version of Compass available. If you need a specific version you can set the version using Gradle’s dependency management. For example:
dependencies { compass "rubygems:compass:1.0.1" }
Gems are installed using the JRuby Gradle plugin. The Compass plugin creates a special "compass" configuration that is used by all the plugin’s tasks.
The Compass plugin creates a cleanCompassCompile
task automatically that will delete compiles CSS. The main clean
task will also delete CSS assuming cssDir
is inside the project’s build
directory.
You can use Compass extensions from Ruby gems by adding dependencies to the compass configuration. The plugin will automatically add a --require
argument for each gem when invoking Compass commands. For example to use the [Breakpoint][breakpoint] extension:
dependencies { compass "rubygems:breakpoint:2.5.0" }
A typical use-case is to run compassWatch
in the background while another task runs your web-server application. This is very easy with the Compass plugin.
Assuming you’re using the Application plugin's run
task you would configure your build with:
run.dependsOn compassWatchStart run.finalizedBy compassWatchStop
-
Allow setting of directory where compass gems get installed (mainly this helps the integration tests run in a sane amount of time but it’s also useful for multi-project builds).
-
Implements
compassWatch
using John Engleman’s Process plugin.
-
JRuby is handled by the [JRuby Gradle plugin](https://github.com/jruby-gradle/jruby-gradle-plugin).
-
added various command line options. Thanks [Ben Groves](http://github.com/bgroves).
-
added ability to specify file encoding used by JRuby.
[app-plugin]: [compass]:http://compass-style.org/ [gradle]:http://gradle.org/ [sass]:http://sass-lang.com/ [breakpoint]:http://breakpoint-sass.com/