【问题标题】:Maven Javascript CompressorMaven Javascript 压缩器
【发布时间】:2011-04-04 22:15:28
【问题描述】:

我想知道如何使用 maven 压缩 javascriptfiles。 我已经访问过类似的网站 http://mojohaus.org/javascript-maven-tools/guide-webapp-development.html 但没有解释实现。

我想知道执行maven插件的依赖关系。

【问题讨论】:

    标签: javascript maven-2 minify


    【解决方案1】:

    迄今为止我发现的最好和最先进的是wro4j。库和 Maven 插件的想法与我在互联网上找到的所有东西都不同,几乎将所有可用的工具组合到一个独立的库中。太棒了。

    wro4j 有两种模式可用 - 第一种是在 Java 应用程序中作为过滤器动态操作,第二种是使用带有 Maven 插件的构建时解决方案。在documentation section 项目中,这一切都非常简单明了,并且得到了很好的解释,所以请看一下并深入了解。关于如何将wro4j 与自己的应用程序或与 Maven 构建过程集成的完整可操作且解释清楚的示例。

    【讨论】:

    • 哇……哇。我打算用一周的时间来复制这个库(好吧,如果我实现了它所具有的所有受支持的功能,那将超过一周)。
    【解决方案2】:

    你可以看cactus maven plugin

    【讨论】:

      【解决方案3】:

      我建议改用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>
      

      具体配置请参考Usage页面和yuicompressor:compress的参数。

      【讨论】:

      • 您好 Pascal,感谢您的回复并提供解决方案。该插件对我来说很好,我可以压缩项目所需的文件。与此同时,我还有 2 个相关的问题。原来的 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 我不知道,我不是这个插件的铁杆用户。但看起来插件默认删除了不必要的半列。也许应该关闭它(使用preserveAllSemiColons),以便它可以删除新行。
      猜你喜欢
      • 1970-01-01
      • 2011-12-06
      • 2011-03-10
      • 2010-11-27
      • 1970-01-01
      • 1970-01-01
      • 2017-02-03
      • 2010-09-06
      • 2012-01-29
      相关资源
      最近更新 更多