java - 如何将 SASS 插件目标绑定(bind)到 tomcat7 部署阶段(maven)

标签 java eclipse maven tomcat sass

我正在开发一个在 Tomcat7 上运行的 Web 应用程序,并使用 Maven 进行依赖项/自动构建。昨天我开始使用 sass-maven-plugin ,这很棒。它的目标sass:update-stylesheets处理sass文件并输出css。不幸的是,我无法在 webapp 打包期间执行它。我对 Maven 也很陌生,所以我可能错过了一些东西。这是我的理解:

  • 当我输入 mvn tomcat7:deploy 时, maven 执行 deploy tomcat7 插件中定义的目标
  • 此插件经历了开发生命周期的某些阶段。更具体地说,如 doc 中所述,它“在执行自身之前调用生命周期阶段包的执行。”
  • 如果我将目标 sass:update-stylesheets 映射到 <build><executions/></build> 中的包阶段,它应该在我每次部署/重新部署我的应用程序时执行。

当我运行 mvn sass:update-stylesheets独立于tomcat7:deploy,一切顺利。 sass-maven-plugin 从 src/main/resources 获取 .scss 文件,处理它们并将输出放在 src/main/webapp/resources 中,我希望它与我的 webapp 一起部署。不幸的是,如果我不在 tomcat7:deploy 之前运行命令,我的页面没有任何 CSS。我做错了什么?另外,有什么方法可以映射 sass:update-stylesheets到相process-resources ,例如,哪个更有意义?最后,如果一切正常,Eclipse 的增量构建是否会接受它?

这是我的 pom.xml(相关部分)

    ...

    <pluginManagement>
        <plugins>
            <plugin>
                <groupId>org.apache.tomcat.maven</groupId>
                <artifactId>tomcat7-maven-plugin</artifactId>
                <version>2.2</version>
                <configuration>
                    ...
                </configuration>
            </plugin>

            <!-- SASS processing -->
            <plugin>
                <groupId>org.jasig.maven</groupId>
                <artifactId>sass-maven-plugin</artifactId>
                <version>1.1.1</version>
                <executions>
                    <execution>
                        <id>generate-css</id>
                        <phase>package</phase>
                        <goals>
                            <goal>update-stylesheets</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <useCompass>true</useCompass>
                    <resources>
                        <resource>
                            <source>
                                <directory>${basedir}/src/main/resources</directory>
                            </source>
                            <destination>${basedir}/src/main/webapp/resources</destination>
                        </resource>
                    </resources>
                </configuration>
            </plugin>


        </plugins>
    </pluginManagement>
</build>

在此先感谢您的帮助。

最佳答案

你已经配置了插件管理部分的东西。请移动执行并将其绑定(bind)到构建部分(即,从 pluginManagement 的插件部分移至构建的插件部分)。

关于java - 如何将 SASS 插件目标绑定(bind)到 tomcat7 部署阶段(maven),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26827345/

相关文章:

java - 如何在聚合器 POM 中指定 Maven 属性?

java - heroku 和 hibernate 5 - NoSuchMethodError : CoreMessageLogger. 调试

java - Spring Boot 2 - 使用 Mockito 测试 @Cacheable 不带参数的方法不起作用

java - 如何从具有泛型类型的抽象类调用方法(使用 java 反射)

java - Akka grpc 可以消费非 Akka 服务的数据吗

java - 使用 Eclipse 的 java 定时器

java - Mac Osx 上的 gksu

java - 在 jruby on Rails 中哪里设置 java 选项?

android - Eclipse - 新的 android Activity 显示在 list 中但在 src 下丢失

java - 原型(prototype)插件创建的项目是否使用旧版本的依赖项?