如何使用 Vaadin 7 和 maven 编译额外的非主题 SCSS 文件
How to compile additional non-theme SCSS files with Vaadin 7 and maven
在 Vaadin 7 的 CustomComponent
中,我们有注释:
@StyleSheet({"../../VAADIN/themes/mytheme/views/someView.css"})
在 productionMode
为 false
时工作正常。
有问题的文件是一个独立的样式 sheet 未被 styles.scss
引用
但是,一旦 productionMode
设置为 true
,Vaadin 不会在 运行 时编译相应的 .scss
,这是预期的行为。
我知道有一个 com.vaadin.sass.SassCompiler
,但我找不到关于如何将它与 maven 一起使用的文档,因此在构建过程中编译了非主题 .scss
。
下面是vaadin-maven-plugin
用法:
<plugin>
<groupId>com.vaadin</groupId>
<artifactId>vaadin-maven-plugin</artifactId>
<version>7.7.13</version>
<configuration>
<extraJvmArgs>-Xmx1024M -Xss2048k</extraJvmArgs>
<noServer>true</noServer>
<webappDirectory>${basedir}/src/main/webapp/VAADIN/widgetsets</webappDirectory>
<compileReport>false</compileReport>
<style>OBF</style>
<strict>true</strict>
</configuration>
<executions>
<execution>
<configuration>
<!-- if you don't specify any modules, the plugin will find them -->
<!-- <modules> <module>com.vaadin.demo.mobilemail.gwt.ColorPickerWidgetSet</module>
</modules> -->
</configuration>
<goals>
<goal>resources</goal>
<goal>compile</goal>
<goal>compile-theme</goal>
<goal>update-theme</goal>
</goals>
</execution>
</executions>
</plugin>
正确答案在:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.2.1</version>
<executions>
<execution>
<phase>generate-sources</phase>
<goals>
<goal>java</goal>
</goals>
<configuration>
<classpathScope>compile</classpathScope>
<mainClass>com.vaadin.sass.SassCompiler</mainClass>
<arguments>
<argument>src/main/webapp/VAADIN/themes/heijunka/styles.scss</argument>
<argument>src/main/webapp/VAADIN/themes/heijunka/styles.css</argument>
</arguments>
</configuration>
</execution>
</executions>
</plugin>
在 Vaadin 7 的 CustomComponent
中,我们有注释:
@StyleSheet({"../../VAADIN/themes/mytheme/views/someView.css"})
在 productionMode
为 false
时工作正常。
有问题的文件是一个独立的样式 sheet 未被 styles.scss
但是,一旦 productionMode
设置为 true
,Vaadin 不会在 运行 时编译相应的 .scss
,这是预期的行为。
我知道有一个 com.vaadin.sass.SassCompiler
,但我找不到关于如何将它与 maven 一起使用的文档,因此在构建过程中编译了非主题 .scss
。
下面是vaadin-maven-plugin
用法:
<plugin>
<groupId>com.vaadin</groupId>
<artifactId>vaadin-maven-plugin</artifactId>
<version>7.7.13</version>
<configuration>
<extraJvmArgs>-Xmx1024M -Xss2048k</extraJvmArgs>
<noServer>true</noServer>
<webappDirectory>${basedir}/src/main/webapp/VAADIN/widgetsets</webappDirectory>
<compileReport>false</compileReport>
<style>OBF</style>
<strict>true</strict>
</configuration>
<executions>
<execution>
<configuration>
<!-- if you don't specify any modules, the plugin will find them -->
<!-- <modules> <module>com.vaadin.demo.mobilemail.gwt.ColorPickerWidgetSet</module>
</modules> -->
</configuration>
<goals>
<goal>resources</goal>
<goal>compile</goal>
<goal>compile-theme</goal>
<goal>update-theme</goal>
</goals>
</execution>
</executions>
</plugin>
正确答案在:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.2.1</version>
<executions>
<execution>
<phase>generate-sources</phase>
<goals>
<goal>java</goal>
</goals>
<configuration>
<classpathScope>compile</classpathScope>
<mainClass>com.vaadin.sass.SassCompiler</mainClass>
<arguments>
<argument>src/main/webapp/VAADIN/themes/heijunka/styles.scss</argument>
<argument>src/main/webapp/VAADIN/themes/heijunka/styles.css</argument>
</arguments>
</configuration>
</execution>
</executions>
</plugin>