maven yui压缩战争:战争

dfa*_*dfa 5 java maven-2 yui-compressor

我正在尝试使用maven和这个插件自动压缩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>
Run Code Online (Sandbox Code Playgroud)

Ric*_*ler 8

您需要将执行绑定到阶段,以便在运行war包装时执行.这些是您可以绑定到战争包装的可用阶段.

<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-->
Run Code Online (Sandbox Code Playgroud)

更新:js.gz文件是否未生成或未包含在战争中?

还有一件事要检查你是否还没有看到战争中的内容是资源应该在src/main/resources下,而不是src/main/webapp.yuicompressor插件将处理src/main/webapp中的js文件,但它们不会包含在最终的战争中.

更新2:看到你的答案后重读你的问题,我误读了你正在运行的目标.为避免运行两个目标,您可以执行以下操作之一:

  1. 尝试而不是运行war目标,运行installpackage,这将调用标准生命周期,yuicompressor插件将在process-resources阶段调用.
  2. 或者,在上面的示例中更改yuicompressor目标所绑定的阶段以打包,以便在运行war:war目标时激活它.


dfa*_*dfa 3

由于某些奇怪的原因,war:war没有在该阶段调用插件process-resources:我刚刚在 nb 6.7 上添加了一个自定义菜单,首先调用compile,然后war:war