使用maven插件缩小CSS和JS文件无法正常工作

时间:2016-12-29 03:20:40

标签: javascript java spring maven minify

我正在尝试按照http://www.baeldung.com/maven-minification-of-js-and-css-assets中的说明在我的Spring MVC Web应用程序中使用YUI压缩器maven插件。我已将以下内容添加到pom.xml文件中:

   <plugin>
         <groupId>net.alchim31.maven</groupId>
            <artifactId>yuicompressor-maven-plugin</artifactId>
             <version>1.5.1</version>
            <executions>
                <execution>
                    <goals>
                        <goal>compress</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <nosuffix>true</nosuffix>
               <webappDirectory>${project.build.directory}/min</webappDirectory>
                <excludes>
                    <exclude>**/*.min.js</exclude>
                    <exclude>**/handlebars-3133af2.js</exclude>
                    <exclude>**/require.js</exclude>
                </excludes>
            </configuration>
    </plugin>

我在src/main/webapp下的子文件夹中有很多CSS和JS文件,根据文档,所有这些都应该缩小。但是当我运行maven clean install时,我在控制台中看不到任何与缩小相关的日志,也没有在war文件中找到任何缩小的文件。

我想要的只是将缩小的文件保存在名为min的子文件夹下,文件名与现有的CSS或JS文件位于同一文件夹中

控制台日志现在是:

[INFO] Scanning for projects...
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building smartwcm-services 6.3.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ smartwcm-services ---
[WARNING] Using platform encoding (Cp1252 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] Copying 36 resources
[INFO] 
[INFO] --- yuicompressor-maven-plugin:1.5.1:compress (default) @ smartwcm-services ---
[ERROR] E:\projects\smartwcm\source-code\smartwcm-services\src\main\webapp\layout\common\adminv3\ca\css\content\design\azure.js [1:2]: illegal character
[ERROR] ...E:\projects\smartwcm\source-code\smartwcm-services\src\main\webapp\layout\common\adminv3\ca\css\content\design\azure.js:line 1:column 2:illegal character
    /* Note: jquery script is assumed to be loaded prior to this script */
[ERROR] E:\projects\smartwcm\source-code\smartwcm-services\src\main\webapp\layout\common\adminv3\ca\css\content\design\azure.js [1:2]: syntax error
[ERROR] ...E:\projects\smartwcm\source-code\smartwcm-services\src\main\webapp\layout\common\adminv3\ca\css\content\design\azure.js:line 1:column 2:syntax error
    /* Note: jquery script is assumed to be loaded prior to this script */
[ERROR] E:\projects\smartwcm\source-code\smartwcm-services\src\main\webapp\layout\common\adminv3\ca\css\content\design\azure.js [1:3]: illegal character
[ERROR] ...E:\projects\smartwcm\source-code\smartwcm-services\src\main\webapp\layout\common\adminv3\ca\css\content\design\azure.js:line 1:column 3:illegal character
    /* Note: jquery script is assumed to be loaded prior to this script */
[ERROR] E:\projects\smartwcm\source-code\smartwcm-services\src\main\webapp\layout\common\adminv3\ca\css\content\design\azure.js [1:0]: Compilation produced 3 syntax errors.
[ERROR] ...E:\projects\smartwcm\source-code\smartwcm-services\src\main\webapp\layout\common\adminv3\ca\css\content\design\azure.js:line 1:column 0:Compilation produced 3 syntax errors.
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 6.060 s
[INFO] Finished at: 2016-12-29T11:25:32+05:30
[INFO] Final Memory: 19M/111M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal net.alchim31.maven:yuicompressor-maven-plugin:1.5.1:compress (default) on project smartwcm-services: Execution default of goal net.alchim31.maven:yuicompressor-maven-plugin:1.5.1:compress failed: Compilation produced 3 syntax errors. -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginExecutionException

1 个答案:

答案 0 :(得分:1)

如果您在pom.xml中没有nosuffix选项运行,就像您发布的配置一样,您将在target \ min文件夹中获得最小化的文件。您将在下面看到登录maven

[INFO] --- yuicompressor-maven-plugin:1.5.1:compress (default) @ spring-static-resources ---
[INFO] bootstrap.css (127343b) -> bootstrap-min.css (106005b)[83%]
[INFO] foo.js (44b) -> foo-min.js (37b)[84%]
[INFO] utils.js (48b) -> utils-min.js (28b)[58%]
[INFO] main.js (138b) -> main-min.js (100b)[72%]
[INFO] router.js (86b) -> router-min.js (64b)[74%]
[INFO] bootstrap.css (127343b) -> bootstrap-min.css (106005b)[83%]
[INFO] foo.js (44b) -> foo-min.js (37b)[84%]
[INFO] bootstrap.css (127343b) -> bootstrap-min.css (106005b)[83%]
[INFO] myCss.css (127343b) -> myCss-min.css (106005b)[83%]
[INFO] bootstrap.css (127343b) -> bootstrap-min.css (106005b)[83%]
[INFO] total input (637075b) -> output (530291b)[83%]

当您使用<nosuffix>true</nosuffix>时,您将获得以下日志。此选项将为您提供target \ min文件夹中的缩小文件,但会保持文件名相同。

[INFO] --- yuicompressor-maven-plugin:1.5.1:compress (default) @ spring-static-resources ---
[INFO] bootstrap.css (127343b) -> bootstrap.css (106005b)[83%]
[INFO] foo.js (44b) -> foo.js (37b)[84%]
[INFO] utils.js (48b) -> utils.js (28b)[58%]
[INFO] main.js (138b) -> main.js (100b)[72%]
[INFO] router.js (86b) -> router.js (64b)[74%]
[INFO] bootstrap.css (127343b) -> bootstrap.css (106005b)[83%]
[INFO] foo.js (44b) -> foo.js (37b)[84%]
[INFO] bootstrap.css (127343b) -> bootstrap.css (106005b)[83%]
[INFO] myCss.css (127343b) -> myCss.css (106005b)[83%]
[INFO] bootstrap.css (127343b) -> bootstrap.css (106005b)[83%]
[INFO] total input (637075b) -> output (530291b)[83%]

要在战争中包含这些最小化文件而不是原始文件,您需要在pom.xml中设置<webappDirectory>。所以你的配置应该如下所示

 <plugin>
         <groupId>net.alchim31.maven</groupId>
            <artifactId>yuicompressor-maven-plugin</artifactId>
            <version>${yuicompressor-maven-plugin.version}</version>
            <executions>
                <execution>
                    <goals>
                        <goal>compress</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <nosuffix>true</nosuffix>
               <webappDirectory>${project.build.directory}/min</webappDirectory>
                <excludes>
                    <exclude>**/*.min.js</exclude>
                    <exclude>**/handlebars-3133af2.js</exclude>
                    <exclude>**/require.js</exclude>
                </excludes>
            </configuration>
    </plugin>

以上日志来自github项目https://github.com/eugenp/tutorials/tree/master/handling-spring-static-resources。检查pom.xml以获取此项目中的参考。