【问题标题】:Javascript and CSS files combining in Maven build WITHOUT compression, minification etcJavascript 和 CSS 文件在 Maven 构建中组合,无需压缩、缩小等
【发布时间】:2016-11-16 00:22:32
【问题描述】:

是否有一个 Maven 插件,它只结合了 js 和 css 资源,但不做任何缩小、模糊、压缩等操作?只是简单的资源连接。

【问题讨论】:

    标签: maven


    【解决方案1】:

    对您的项目进行以下更改:

    1. 在您的 pom.xml<dependencies> 标记中,放置:

      <!-- JAVASCRIPT COMBINATION -->
      <dependency>
          <groupId>ro.isdc.wro4j</groupId>
          <artifactId>wro4j-core</artifactId>
      </dependency>
      
    2. 在您的 pom.xml&lt;plugins&gt; 标记中,放置:

      <plugin>
          <groupId>ro.isdc.wro4j</groupId>
          <artifactId>wro4j-maven-plugin</artifactId>
          <version>1.4.3</version>
          <executions>
              <execution>
                  <phase>process-resources</phase>
                  <goals>
                      <goal>run</goal>
                  </goals>
              </execution>
          </executions>
          <configuration>
              <targetGroups>allDev</targetGroups>
              <destinationFolder>${basedir}/src/main/webapp/</destinationFolder>
              <contextFolder>${basedir}/src/main/webapp/</contextFolder>
          </configuration>
      </plugin>
      
    3. 在您的 pom.xml(或父 pom.xml&lt;dependencyManagement&gt; 标记中,放置:

      <!-- JAVASCRIPT COMBINATION -->
      <dependency>
          <groupId>ro.isdc.wro4j</groupId>
          <artifactId>wro4j-core</artifactId>
          <version>1.8.0</version>
      </dependency>
      
    4. /project/src/main/webapp/WEB-INF 下创建一个 wro.xml 并放置如下内容:

      <?xml version="1.0" encoding="UTF-8"?>
      <groups xmlns="http://www.isdc.ro/wro">  
          <group name="allDev">  
              <js minimize="false">/my1stJsFolder/*.js</js>
              <js minimize="false">/my2ndJsFolder/*.js</js>
              <js minimize="false">/someFileDirectlyUnderWEBINF.js</js>
          </group>
      </groups>  
      
    5. web.xml 中插入:

      <filter>
          <filter-name>WebResourceOptimizer</filter-name>
          <filter-class>ro.isdc.wro.http.WroFilter</filter-class>
      </filter>
      <filter-mapping>
          <filter-name>WebResourceOptimizer</filter-name>
          <url-pattern>/wro/*</url-pattern>
      </filter-mapping>
      

    allDev.js 将在/project/src/main/webapp 下生成。

    我还不确定如何告诉 wro4j 只在目标中生成一个(现在您有两个 - 一个在项目源文件中,一个在目标文件中)。

    当使用 yui 插件压缩时,我只得到一个目标。但这对你来说应该不是什么大问题。

    更多:

    额外

    如果您对资源处理有任何问题,请尝试添加到&lt;build&gt; 标签:

    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <filtering>true</filtering>
        </resource>
    </resources>
    

    还有&lt;plugins&gt;添加

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-resources-plugin</artifactId>
        <configuration>
            <nonFilteredFileExtensions>
                <nonFilteredFileExtension>pdf</nonFilteredFileExtension>
                <nonFilteredFileExtension>swf</nonFilteredFileExtension>
                <nonFilteredFileExtension>jpg</nonFilteredFileExtension>
                <nonFilteredFileExtension>jpeg</nonFilteredFileExtension>
                <nonFilteredFileExtension>class</nonFilteredFileExtension>
                <nonFilteredFileExtension>jks</nonFilteredFileExtension>
                <nonFilteredFileExtension>exe</nonFilteredFileExtension>
                <nonFilteredFileExtension>wmv</nonFilteredFileExtension>
                <nonFilteredFileExtension>jar</nonFilteredFileExtension>
                <nonFilteredFileExtension>zip</nonFilteredFileExtension>
                <nonFilteredFileExtension>gz</nonFilteredFileExtension>
            </nonFilteredFileExtensions>
        </configuration>
    </plugin>  
    

    【讨论】:

      【解决方案2】:

      我认为大多数工具都允许您关闭缩小功能。

      这是另一对看起来很有趣的夫妇:

      http://jawr.java.net/

      https://code.google.com/p/wro4j/

      【讨论】:

        【解决方案3】:

        【讨论】:

        • 我猜这不适用于 maven 3 项目(我可以看到它依赖于 maven 2 项目)。此外,该 jar 无法在任何地方下载。我安装了一个显然支持 maven3 的较新版本(mojo.codehaus.org/javascript-maven-tools/…repo1.maven.org/maven2/org/codehaus/mojo/…),但是在构建时得到“在 META-INF/maven/plugin.xml 中找不到插件描述符”。而且我在这个上看不到合并目标。我们有什么办法可以得到可以处理这个问题的血统库吗?
        【解决方案4】:

        我已经使用 YUI Compressor 多年了。以前在 ANT 中做,但也有一个 maven 插件。以下链接是聚合的示例:

        http://alchim.sourceforge.net/yuicompressor-maven-plugin/ex_aggregation.html

        【讨论】:

        • 我没有找到关闭压缩的方法。您只能压缩之后进行聚合。
        猜你喜欢
        • 2020-06-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-01-29
        • 2010-10-26
        • 1970-01-01
        • 2012-03-18
        • 1970-01-01
        相关资源
        最近更新 更多