我有一个Spring-boot应用程序,我希望使用SCSS来改进我的CSS
。我已成功配置pom
我的SCSS
文件,以便在maven编译期间编译为有效的CSS
。我现在希望对SCSS
进行热部署。每次更改SCSS
时,我都希望在已启动的spring-boot
应用中重新编译并重新部署,以便我只需刷新浏览器即可查看更改。
我的目标只是执行maven
命令:
mvn install spring-boot:run sass:watch
让它发挥作用。有可能吗?
我从另一个终端运行时还没有设法让sass:watch
工作,但我认为这只是一个pom配置问题。
编辑:我的应用程序是作为胖(或超级)jar构建的
答案 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>