我正在开发一个在 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/