我正在尝试使用maven和this plugin自动压缩CSS和JS。我想在执行目标战时压缩,但我不知道如何:
<build>
<finalName>${artifactId}-${version}-production</finalName>
<plugins>
<plugin>
<groupId>net.sf.alchim</groupId>
<artifactId>yuicompressor-maven-plugin</artifactId>
<executions>
<execution>
<configuration>
<gzip>true</gzip>
<nosuffix>true</nosuffix>
</configuration>
<goals>
<goal>compress</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
答案 0 :(得分:8)
您需要将执行绑定到某个阶段,以便在运行war包装时执行该阶段。这些是你可以绑定到战争包装的available phases。
<plugin>
<groupId>net.sf.alchim</groupId>
<artifactId>yuicompressor-maven-plugin</artifactId>
<executions>
<execution>
<id>compress</id>
<phase>process-resources</phase>
...<!--rest of config is fine-->
更新:js.gz文件是否未生成或未包含在战争中?
另外还有一件事要检查你是否还没有看到战争中的内容是资源应该在 src / main / resources 下,而不是 src / main / webapp < / em>的。 yuicompressor插件将处理 src / main / webapp 中的js文件,但它们不会包含在最后的战争中。
更新2:看到你的答案后重新阅读你的问题,我误读了你正在运行的目标。为避免实现两个目标,您可以执行以下任一操作:
答案 1 :(得分:3)
由于一些奇怪的原因war:war
没有在阶段process-resources
中调用插件:我刚刚在nb 6.7上添加了一个自定义菜单,首先调用compile
,然后调用{{1} }