Maven JavaScript压缩器

9
3个回答

9
我建议使用YUI Compressor Maven Mojo及其yuicompressor:compress目标。该工具有完整的文档,易于使用。
使用时,请添加以下pluginRepository:
  <pluginRepositories>
    <pluginRepository>
      <name>oss.sonatype.org - github-releases</name>
      <id>oss.sonatype.org-github-releases</id>
      <url>http://oss.sonatype.org/content/repositories/github-releases</url>
    </pluginRepository>
  </pluginRepositories>

并声明插件:

<project>
  ...
  <build>
    <!-- To define the plugin version in your parent POM -->
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>net.alchim31.maven</groupId>
          <artifactId>yuicompressor-maven-plugin</artifactId>
          <version>0.9</version>
        </plugin>
        ...
      </plugins>
    </pluginManagement>
    <!-- To use the plugin goals in your POM or parent POM -->
    <plugins>
      <plugin>
        <groupId>net.alchim31.maven</groupId>
        <artifactId>yuicompressor-maven-plugin</artifactId>
        <executions>
          <execution>
            <goals>
              <goal>compress</goal>
            </goals>
          </execution>
        </executions>   
      </plugin>
      ...
    </plugins>
  </build>
  ...
</project>

请参考使用说明页面和yuicompressor:compress参数进行精确配置。

你好 Pascal, 感谢您的回复和提供解决方案。插件对我很有效,我可以压缩项目所需的文件。同时,我还有两个相关问题。原始的 yuicompressor 能够删除 JS 文件中的换行符。是否有办法使用该插件从压缩后的 js 中删除换行符? 例如: test.namespace("com.grid"); com.grid.Menu=function(a){this.m_oMenu=new com.grid.Menu(a,this); this.m_oMenu=a; }; 作为单行 test.namespace("com.grid");com.grid.Menu=function(a){this.m_oMenu=new com.grid.Menu(a,this);this.m_oMenu=a;}; - AmbGup
@AmbGup 我不知道,我不是这个插件的高级用户。但是它看起来似乎默认情况下会删除不必要的分号。也许应该关闭这个功能(使用 preserveAllSemiColons),这样它就可以删除换行符了。 - Pascal Thivent

4
我到目前为止找到的最好和最先进的是wro4j。这个库和Maven插件的理念不同于我在互联网上能够找到的任何东西,将几乎所有可用的工具组合成一个独立的库。棒极了。 wro4j有两种可用模式 - 第一种是作为Java应用程序中的过滤器动态操作,第二种是使用Maven插件进行构建时解决方案。这一切都在项目文档部分中得到了很好的解释,所以请看一看并深入了解。有完全操作和详细解释的示例,说明如何将wro4j与应用程序或Maven构建过程集成。

哇...真是太棒了。我本来打算花一周时间复制这个库(如果我实现它支持的所有功能,需要更多的时间)。 - Ed .

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接