Skip to content

123Haynes/libsass-maven-plugin

Repository files navigation

Libsass Maven Plugin pipeline status Maven Central

Libsass Maven Plugin uses libsass to compile sass files. Uses jsass to interface with C-library.

Compability

This plugin only works with 64bit OS, because the upstream library jsass removed 32bit support.
Please look here for a full compability matrix: https://github.com/bit3/jsass#compatibility-overview

This project was forked from https://github.com/warmuuh/libsass-maven-plugin version 0.2.10-libsass_3.5.3

Installation

libsass-maven-plugin is available on central-repository since version 0.2.11

Usage

Configure plugin in your pom.xml:

<build>
   <plugins>
      <plugin>
         <groupId>com.gitlab.haynes</groupId>
         <artifactId>libsass-maven-plugin</artifactId>
         <version>0.3.1</version>
         <executions>
            <execution>
               <phase>generate-resources</phase>
               <goals>
                  <goal>compile</goal>
               </goals>
            </execution>
         </executions>
         <configuration>
            <inputPath>${basedir}/src/main/sass/</inputPath>
            <outputPath>${basedir}/target/</outputPath>
            <includePath>${basedir}/src/main/sass/plugins/</includePath>
         </configuration>
      </plugin>
   </plugins>
</build>

Alternatively, you can use the watch goal to have the plugin watch your files and recompile on change:

mvn com.gitlab.haynes:libsass-maven-plugin:0.3.1:watch

Configuration Elements

Element Default value Documentation
outputPath ${project.build.directory} The directory in which the compiled CSS files will be placed.
inputPath src/main/sass The directories from which the source .scss files will be read, ';'-separated. These directories will be traversed recursively, and all .scss files found in these directories or subdirectories will be compiled.
includePath null Additional include path, ';'-separated
outputStyle nested Output style for the generated css code. One of nested, expanded, compact, compressed.
generateSourceComments false Emit comments in the compiled CSS indicating the corresponding source line. The default value is false.
generateSourceMap true Generate source map files. The generated source map files will be placed in the directory specified by sourceMapOutputPath.
sourceMapOutputPath ${project.build.directory} The directory in which the source map files that correspond to the compiled CSS will be placed
omitSourceMapingUrl false Prevents the generation of the sourceMappingUrl special comment as the last line of the compiled CSS.
embedSourceMapInCss false Embeds the whole source map data directly into the compiled CSS file by transforming sourceMappingUrl into a data URI.
embedSourceContentsInSourceMap false Embeds the contents of the source .scss files in the source map file instead of the paths to those files
inputSyntax scss Switches the input syntax used by the files to either sass or scss.
precision 5 Precision for fractional numbers
enableClasspathAwareImporter false Enables classpath aware importer which make possible to @import files from classpath and WebJars. For classpath resources use @import 'path/to/resource/in/classpath';. For WebJar resources a shortcut can be used: @import '{package}/{path}'; imports resource META-INF/resources/webjars/{package}/{version}/{path}. Warning: Due to a limitation in jsass, this currently only works with scss files.
failOnError true should fail the build in case of compilation errors.
copySourceToOutput false copies all files from source directory to output directory

License

MIT License.