【发布时间】:2014-11-09 19:22:53
【问题描述】:
我正在开发一个在 Tomcat7 上运行的 webapp,并使用 maven 进行依赖项/自动构建。昨天我开始使用sass-maven-plugin,非常棒。它的目标sass:update-stylesheets 处理 sass 文件并输出 css。不幸的是,我无法在 webapp 打包期间执行它。我对 Maven 也很陌生,所以我可能错过了一些东西。这是我的理解:
- 当我输入
mvn tomcat7:deploy时,maven 会执行tomcat7 插件中定义的deploy目标 - 此插件经历了开发生命周期的某些阶段。更具体地说,正如doc 中所述,它“在执行自身之前调用生命周期阶段包的执行”。
- 如果我将目标 sass:update-stylesheets 映射到
<build><executions/></build>中的包阶段,则应在每次部署/重新部署我的应用程序时执行。
当我独立于 tomcat7:deploy 运行 mvn sass:update-stylesheets 时,一切都很顺利。 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>
提前感谢您的帮助。
【问题讨论】:
-
正确的阶段大概是
generate-resources。 -
pre-package可能也值得一看。 -
至于 Eclipse 映射,我用谷歌搜索了这个 - code.google.com/a/eclipselabs.org/p/m2e-jasig-sass-connector。还有一个示例项目 - code.google.com/a/eclipselabs.org/p/m2e-jasig-sass-connector/… 。而且您可能应该坚持使用默认的阶段绑定 (
process-sources)。 -
无论如何,无论在哪个阶段,update-stylesheets 都不会被调用。 generate-resources 是我的第一选择,但由于 package 是 tomcat7 插件文档中唯一提到的,所以我试了一下。目前正在为“预打包”构建。
-
该死的,阅读。您已经在插件管理部分配置了这些东西。请移动执行并将其绑定到 build 部分(即,从 pluginManagement 的 plugins 部分到 build 的 plugins 部分)。
标签: java eclipse maven tomcat sass