Giter Site home page Giter Site logo

dart-sass-maven-plugin's Introduction

Dart Sass Maven Plugin

Maven License: MIT Java Linux CI Java Mac CI Java Windows CI

A Maven plugin that allows to compile SASS using Dart Sass

Usage

<build>
...
		<plugins>
			<plugin>
				<groupId>io.github.cleydyr</groupId>
				<artifactId>dart-sass-maven-plugin</artifactId>
				<version>1.3.0</version>
				<executions>
					<execution>
						<id>generate-css-using-sass</id>
						<phase>generate-resources</phase>
						<goals>
							<goal>compile-sass</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
...
</plugins>
</build>

Supported systems

Dart Sass Maven Plugin will run on any operating systems and architectures available on the Dart Sass releases page. As of now, they are:

Linux Mac Windows Linux (musl)
ia32
x64
arm64
arm

Automatic detection of operating system and architecture

The Dart Sass Maven Plugin will automatically detect the operating system and architecture of the machine where it's running. If it fails to do so, it will fall back to the following defaults:

  • Architecture: ia32
  • Operating system: linux

Automatic detection of Dart Sass version

Dart Sass Maven Plugin will determine the latest Dart Sass version available on the Dart Sass releases page if the parameter is not set. As a fallback, if the artifacts for a given OS/arch are unavailable, it will use the latest version available for the same OS/arch combination (available on GitHub or cached in the local file system, if possible).

Warning

It's recommended to use a fixed version parameter value in your project to help achieve a reproducible build and avoid errors caused by GitHub temporarily blocking the client's IP when the plugin checks for the latest version multiple times from the same IP. That may happen in an automated CI environment with frequent builds for example.

Offline operation

This plugin included all released archives for a given Dart Sass version in previous versions. However, starting from version 1.0.0, this plugin will download the latest release of Dart Sass if it's not found in the temporary folder or in the cached files' directory. Should this plugin be used in an air-capped environment, you should provide a release archive inside the cached files directory and at least pin the Dart Sass' release version with the <version> parameter. The release archive should be a file named release on the subpath <os>/<arch>/<version>/ inside the cached files' directory.

Proxy connections

This plugin will detect Maven's proxy configurations and use it if necessary to download a release artifact and query GitHub to discover the latest Dart Sass release.

Goals

compile-sass

This goal compiles a set of sass/scss files from an input directory to an output directory.

Full name: io.github.cleydyr:dart-sass-maven-plugin:0.4.0:compile-sass

Binds by default to the lifecycle phase: process-resources.

Parameter details

<arch>

This parameter represents the Dart Sass architecture that should be used to compile Sass files. If left unset, it will be autodetected by the plugin. Accepted values are "x64", "aarch32", "aarch64" and "ia32".
Type: String
Required: No

<os>

This parameter represents the Dart Sass operating system that should be used to compile Sass files. If left unset, it will be autodetected by the plugin. Accepted values are "linux", "linux-musl", "macos" and "windows".
Type: String
Required: No

<version>

This parameter represents the Dart Sass version that should be used to compile Sass files. If left unset, the version available at https://github.com/sass/dart-sass/releases/latest will be used.
Type: String
Required: No

<cachedFilesDirectory>

This parameter represents a path in the local file system where the release archive downloaded from the internet will be stored. If left unset, it will default to

  • $HOME/.cache/dart-sass-maven-plugin/ on *nix operating systems; or
  • %LOCALAPPDATA%\dart-sass-maven-plugin\Cache on Windows operating systems.

Type: java.io.File
Required: No

<color>

This flag tells Sass to emit terminal colors. By default, it will emit colors if it looks like it's running on a terminal supporting them. Set it to false to tell Sass to not emit colors.
Type: boolean
Required: No
Default: true

<embedSourceMap>

This flag tells Sass to embed the contents of the source map file in the generated CSS, rather than create a separate file and link to it from the CSS.
Type: boolean
Required: No
Default: false

<embedSources>

This flag tells Sass to embed all the contents of the Sass files that contributed to the generated CSS in the source map. This may produce very large source maps, but it guarantees that the source will be available on any computer no matter how the CSS is served.
Type: boolean
Required: No
Default: false

<errorCSS>

This flag tells Sass whether to emit a CSS file when an error occurs during compilation. This CSS file describes the error in a comment and in the content property of body::before so that you can see the error message in the browser without switching back to the terminal. By default, error CSS is enabled if you're compiling to at least one file on disk (as opposed to standard output). You can activate errorCSS explicitly to enable it even when compiling to standard out (not supported by this Maven plugin) or set it explicitly to false to disable it everywhere. When it's disabled, the update flag and watch flag (the latter being not yet supported by this Maven plugin) will delete CSS files instead when an error occurs.
Type: boolean
Required: No
Default: true

<inputFolder>

Path to the folder where the sass/scss are located.
Type: java.io.File
Required: No
Default: src/main/sass

<loadPaths>

Paths from where additional load path for Sass to look for stylesheets will be loaded. It can be passed multiple times to provide multiple load paths. Earlier load paths will take precedence over later ones.
Type: java.util.List
Required: No

<noCharset>

This flag tells Sass never to emit a @charset declaration or a UTF-8 byte-order mark. By default, or if the charset flag is activated, Sass will insert either a @charset declaration (in expanded output mode) or a byte-order mark (in compressed output mode) if the stylesheet contains any non-ASCII characters.
Type: boolean
Required: No
Default: false

<noSourceMap>

Sass won't generate any source maps if the noSourceMap flag is set. If explicitly set, it will void other source map options (namely sourceMapURLs, embedSources, and embedSourceMap).
Type: boolean
Required: No
Default: false

<noUnicode>

This flag tells Sass only to emit ASCII characters to the terminal as part of error messages. By default, Sass will emit non-ASCII characters for these messages. This flag does not affect the CSS output.
Type: boolean
Required: No
Default: false

<outputFolder>

Path to the folder where the CSS and source map files will be created.
Type: java.io.File
Required: No
User Property: project.build.directory

<quiet>

This flag tells Sass not to emit any warnings when compiling. By default, Sass emits warnings when deprecated features are used or when the @warn rule is encountered. It also silences the @debug rule. Enabling it will also silence output when in watch mode.
Type: boolean
Required: No
Default: false

<quietDeps>

This flag tells Sass not to emit deprecation warnings that come from dependencies. It considers any file that's transitively imported through a load path to be a "dependency." This flag doesn't affect the @warn rule or the @debug rule.
Type: boolean
Required: No
Default: false

<sourceMapURLs>

This option controls how the source maps Sass generates link back to the Sass files that contributed to the generated CSS. Dart Sass supports two types of URLs:

  • RELATIVE (the default) uses relative URLs from the location of the source map file to the locations of the Sass source file; and
  • ABSOLUTE uses the absolute file: URLs of the Sass source files. Note that absolute URLs will only work on the same computer where the CSS was compiled.

Use either RELATIVE or ABSOLUTE in the plugin configuration.
Type: com.github.cleydyr.dart.command.enums.
SourceMapURLs Required: No
Default: RELATIVE

<stopOnError>

This flag tells Sass to stop compiling immediately when an error is detected rather than trying to compile other Sass files that may not contain errors. It's mostly useful in many-to-many mode (which is the mode currently supported by this Maven plugin).
Type: boolean
Required: No
Default: false

<style>

This option controls the output style of the resulting CSS. Dart Sass supports two output styles:

  • EXPANDED (the default), which writes each selector and declaration on its own line; and
  • COMPRESSED, which removes as many extra characters as possible and writes the entire stylesheet on a single line.

Use either EXPANDED or COMPRESSED in the plugin configuration.

Type: com.github.cleydyr.dart.command.enums.Style
Required: No
Default: EXPANDED

<trace>

This flag tells Sass to print the full Dart stack trace when encountering an error. It's used by the Sass team for debugging errors.
Type: boolean
Required: No
Default: false

<update>

If this flag is set to true, Sass will only compile stylesheets whose dependencies have been modified more recently than the corresponding CSS file was generated. It will also print status messages when updating stylesheets.
Type: boolean
Required: No
Default: false

watch-sass

This goal compiles a set of sass/scss files from an input directory to an output directory and keeps the process open watching for changes in the source files. A message will be written to the standard output each time a source file changes.

Full name: io.github.cleydyr:dart-sass-maven-plugin:0.4.0:watch-sass

By default, it binds to no lifecycle phase.

Parameter details

In addition to the parameters that are available to the compile-sass goal, the following parameter is also available:

<poll>

This flag tells Sass to manually check for changes to the source files every so often instead of relying on the operating system to notify it when something changes. This may be necessary if you’re editing Sass on a remote drive where the operating system’s notification system doesn't work.
Type: boolean
Required: No
Default: false

dart-sass-maven-plugin's People

Contributors

cleydyr avatar melloware avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

dart-sass-maven-plugin's Issues

Build: mvn clean package fails

I checked out your project and ran mvn clean package and its failing. Full log attached:
failure.txt

Apache Maven 3.8.5
Maven home: C:\Tools\apache-maven-3.8.1\bin..
Java version: 11.0.10, vendor: AdoptOpenJDK, runtime: C:\Tools\jdk-11.0.10
Default locale: en_US, platform encoding: Cp1252
OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-clean-plugin:2.5:clean (default-cli) on project dart-sass-maven-plugin: Failed to clean project: Failed to delete C:\dev\melloware-git\dart-sass-maven-plugin\target\surefire\surefirebooter3636085958289191551.jar -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-clean-plugin:2.5:clean (default-cli) on project dart-sass-maven-plugin: Failed to clean project: Failed to delete C:\dev\melloware-git\dart-sass-maven-plugin\target\surefire\surefirebooter3636085958289191551.jar
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:215)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:957)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:289)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:193)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:566)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)

Option to ignore css Files

Hi,

i have problems that sass won't compile my css Files (Error: Interpolation isn't allowed in plain CSS) but it is not needed to compile css!
Is it possible to add an extra option to ignore css Files? Or maybe support of * in inputFolder like src/main/webapp/resources/**/*.scss?

Thanks
Daniel

Allow use of `sass` executable found in PATH for offline usage

It could be useful for offline mode and air-gapped developers to allow the plugin to use the sass executable to be found in PATH instead of downloading or maintaining a <cachedFilesDirectory>

Could this be implement with an additional parameter or as a default failsafe behaviour?

Thread Safe and Update

@cleydyr just a couple of things.

  1. I see this warning in my Parrallel execution of tests but I am not having any issues just thought you should know.
Warning:  *****************************************************************
Warning:  * Your build is requesting parallel execution, but this         *
Warning:  * project contains the following plugin(s) that have goals not  *
Warning:  * marked as thread-safe to support parallel execution.          *
Warning:  * While this /may/ work fine, please look for plugin updates    *
Warning:  * and/or request plugins be made thread-safe.                   *
Warning:  * If reporting an issue, report it against the plugin in        *
Warning:  * question, not against Apache Maven.                           *
Warning:  *****************************************************************
Warning:  The following plugins are not marked as thread-safe in PrimeFaces Showcase:
Warning:    io.github.cleydyr:dart-sass-maven-plugin:0.3.0
Warning:  
Warning:  Enable debug to see precisely which goals are not marked as thread-safe.
Warning:  *****************************************************************
  1. I wonder if we should update to the latest Dart SASS Exe's?

  2. Finally I have been using this for months without issue maybe time for a 1.0.0 release?

Add classpath to loadPath

The libsass-maven-plugin plugin has the option to allow classpath resources to be used as imports:

@import "META-INF/resources/webjars/bootstrap-sass/assets/stylesheets/bootstrap/variables";

This functionality was provided by ClasspathAwareImporter.java.

Is it possible to add similar functionality to the dart-sass-maven-plugin?

My current workaround is to have maven-dependency-plugin extract some dependencies into a directory and add that directory as loadPath.

[enhancement] support maven proxy settings

It looks like the plugin is not using maven proxy settings when trying to download sass from Github.
We added explicit proxy settings to a Bamboo maven task, now sass is cached.

Best regards and thanks for this plugin.

Watch: Not watching correct directory

Trying to run ...

mvn io.github.cleydyr:dart-sass-maven-plugin:0.2.0:watch-sass

I am getting this its looking at src\main\sass and its not looking at my plugin config for which directory unless I am doing something wrong.

[INFO] --- dart-sass-maven-plugin:0.2.0:watch-sass (default-cli) @ primefaces-showcase ---
Error reading src\main\sass: Cannot open file.

Sass is watching for changes. Press Ctrl-C to stop.

Mark plugins goals as thread-safe, if possible

Users may get this warning when requesting a parallel execution:

Warning:  *****************************************************************
Warning:  * Your build is requesting parallel execution, but this         *
Warning:  * project contains the following plugin(s) that have goals not  *
Warning:  * marked as thread-safe to support parallel execution.          *
Warning:  * While this /may/ work fine, please look for plugin updates    *
Warning:  * and/or request plugins be made thread-safe.                   *
Warning:  * If reporting an issue, report it against the plugin in        *
Warning:  * question, not against Apache Maven.                           *
Warning:  *****************************************************************
Warning:  The following plugins are not marked as thread-safe in PrimeFaces Showcase:
Warning:    io.github.cleydyr:dart-sass-maven-plugin:0.3.0
Warning:  
Warning:  Enable debug to see precisely which goals are not marked as thread-safe.
Warning:  *****************************************************************

The goal of this issue is to mark the plugin goals as thread-safe if possible and document this feature regardless of the result.

Source: #21

Plugin started hanging since version 1.2.0

After a while after using version 1.2.0 of the plugin, I was no longer able to build my project since the plugin stucks after "Auto-detected operating system architecture: x64". The only way to build my project was to go back to version 1.1.0.
I experienced this problem in different projects on a Linux machine and on Windows. Running the build with -X gives no further output.

Permission Denied when executing

We have issue that when running the plugin on our build server it no longer works due to following error:
Caused by: java.io.IOException: Cannot run program "/tmp/dart-sass-maven-plugin/linux/x64/1.69.3/sass": error=13, Permission denied

Currently running on version 1.1.0 but this worked in 0.3.0 - have not tried verisons in between.

Is this something that can be fixed in the plugin or is it configuration issue?

[0.2.0] - Null Pointer Exception

Caused by: java.lang.NullPointerException at java.util.Objects.requireNonNull (Objects.java:221) at java.nio.file.Files.copy (Files.java:3035) at com.github.cleydyr.dart.system.io.PosixDartSassExecutableExtractor.extract (PosixDartSassExecutableExtractor.java:34) at com.github.cleydyr.maven.plugin.CompileSassMojo.extractExecutable (CompileSassMojo.java:236) at com.github.cleydyr.maven.plugin.CompileSassMojo.execute (CompileSassMojo.java:198) at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137) at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:210) at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156) at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81) at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56) at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128) at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305) at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192) at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105) at org.apache.maven.cli.MavenCli.execute (MavenCli.java:957) at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:289) at org.apache.maven.cli.MavenCli.main (MavenCli.java:193) at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method) at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62) at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke (Method.java:566) at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282) at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225) at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406) at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)

noSourceMap isn't working

This plugin is wonderful!

I'm using <noSourceMap>true</noSourceMap> but a source map is still being generated.

It's being executed through Eclipse using org.eclipse.m2e:lifecycle-mapping but the other settings I have are being honored.

                <configuration>
                    <inputFolder>${project.basedir}/src/main/resources/sass/</inputFolder>
                    <noSourceMap>true</noSourceMap>
                    <outputFolder>${project.basedir}/src/main/resources/static/css/</outputFolder>
                    <style>EXPANDED</style>
                    <update>true</update>
                </configuration>

noSourceMap option cannot be set -- no error message

When setting noSourceMap option, the build fails because AbstractSassCommand also passes --source-map-urls option to the executable. It returns with exit code 64 with no other error message in the log.

To get to what its problem was I had to debug the plugin to get the executed command, and call it from command line to see the actual error message returned by the executable. It seems that the error message is printed on the standard out (along with the usage instructions).

Please note I'm on Apple Silicon. Maybe Windows handles the process outputs differently.

Process exiting with code 64

Hi,

I'm trying to replace EOL sass-maven-plugin with your dart-sass-maven-plugin but cannot seem to get it to compile, instead it crashes with following exception:

Can't execute SASS command
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:215)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:957)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:289)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:193)
    at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:498)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
    at org.codehaus.classworlds.Launcher.main (Launcher.java:47)
Caused by: org.apache.maven.plugin.MojoExecutionException: Can't execute SASS command
    at com.github.cleydyr.maven.plugin.CompileSassMojo.execute (CompileSassMojo.java:208)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:210)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:957)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:289)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:193)
    at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:498)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
    at org.codehaus.classworlds.Launcher.main (Launcher.java:47)
Caused by: com.github.cleydyr.dart.command.exception.SassCommandException: Process exited with code 64

My current setup for the plugin is:

           <plugin>
                <groupId>io.github.cleydyr</groupId>
                <artifactId>dart-sass-maven-plugin</artifactId>
                <version>0.1.0</version>
                <executions>
                    <execution>
                        <id>generate-css-using-sass</id>
                        <phase>generate-resources</phase>
                        <goals>
                            <goal>compile-sass</goal>
                        </goals>
                        <configuration>
                            <inputFolder>${basedir}/src/main/resources</inputFolder>
                            <outputFolder>${project.build.directory}/resources/css/sassy</outputFolder>
                            <loadPaths>
                                <path>${project.build.directory}/source-sass</path>
                            </loadPaths>
                            <update>true</update>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

Since I am using unpacked webjars bootstrap and trying to extend its scss files I need to load additional path into the execution for the @imports to work. This seems to work fine with locally installed dart-sass with same inputs.

Any suggestions/ideas? Is this bug in the plugin or am I doing something wrong here?

Commons IO Incompatibility: Missing AbstractStreamBuilder

With 1.3.0.

[ERROR] Failed to execute goal io.github.cleydyr:dart-sass-maven-plugin:1.3.0:compile-sass (generate-css-using-sass) on project designer: 
Execution generate-css-using-sass of goal io.github.cleydyr:dart-sass-maven-plugin:1.3.0:compile-sass failed: 
A required class was missing while executing io.github.cleydyr:dart-sass-maven-plugin:1.3.0:compile-sass: org/apache/commons/io/build/AbstractStreamBuilder

I think you need to upgrade to 2.15.1: https://commons.apache.org/proper/commons-io/

Filename question

How can I specify the target filename?

My source file is application.scss and the final file becomes application.css.

I want to control the output name to become application.min.css.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.