使用Spring-boot应用程序观察SCSS

时间:2015-03-12 13:27:13

标签: maven sass spring-boot

我有一个Spring-boot应用程序,我希望使用SCSS来改进我的CSS。我已成功配置pom我的SCSS文件,以便在maven编译期间编译为有效的CSS。我现在希望对SCSS进行热部署。每次更改SCSS时,我都希望在已启动的spring-boot应用中重新编译并重新部署,以便我只需刷新浏览器即可查看更改。

我的目标只是执行maven命令:

mvn install spring-boot:run sass:watch

让它发挥作用。有可能吗?

我从另一个终端运行时还没有设法让sass:watch工作,但我认为这只是一个pom配置问题。

编辑:我的应用程序是作为胖(或超级)jar构建的

2 个答案:

答案 0 :(得分:2)

因为我有同样的问题:

你不能运行spring-boot:run sass:watch作为单个命令。 Maven不是(真的)多线程,任务是作为序列执行的。由于两个任务都是阻塞的,因此第二个任务将永远不会被执行。

所以你需要从两个控制台运行两个命令

mvn spring-boot:run 
mvn sass:watch

真的不需要mvn安装。如果你仍然需要它,请将它放在第一个命令中。

答案 1 :(得分:1)

您可以使用exec-maven-plugin异步执行sass:watch Maven目标:

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>exec-maven-plugin</artifactId>
    <version>1.6.0</version>
    <configuration>
        <executable>mvn</executable>
        <async>true</async>
        <arguments>
            <argument>sass:watch</argument>
        </arguments>
    </configuration>
</plugin>

要执行:

mvn exec:exec spring-boot:run

或者您可以将执行目标绑定到特定阶段(例如验证)和/或将其包装在配置文件中,以便仅在需要时执行:

mvn spring-boot:run -P sass

<profile>
    <id>sass</id>
    <build>
        <plugins>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>exec-maven-plugin</artifactId>
                <version>1.6.0</version>
                <configuration>
                    <executable>mvn</executable>
                    <async>true</async>
                    <arguments>
                        <argument>sass:watch</argument>
                    </arguments>
                </configuration>
                <executions>
                    <execution>
                        <phase>validate</phase>
                        <goals>
                            <goal>exec</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</profile>