如何使用 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"})

productionModefalse 时工作正常。

有问题的文件是一个独立的样式 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>