【问题标题】:Using Samaxes Minify nosuffix to overwrite original files使用 Samaxes Minify nosuffix 覆盖原始文件
【发布时间】:2014-04-02 19:01:50
【问题描述】:

我正在使用 Samaxes 缩小 maven 插件来缩小 js 和 css 文件。 该插件可以很好地使用缩小 js 和 css 创建新文件,但我希望缩小后的文件与原始文件具有相同的名称(覆盖它们)。 所以我尝试在pom.xml中添加nosuffix true,如下:

<plugin>
        <groupId>com.samaxes.maven</groupId>
        <artifactId>minify-maven-plugin</artifactId>
        <version>1.7.2</version>
        <executions>
            <execution>
                <id>default-minify</id>
                <configuration>
                    <charset>UTF-8</charset>
                    <closureCompilationLevel>WHITESPACE_ONLY</closureCompilationLevel>
                    <nosuffix>true</nosuffix>
                    <skipMerge>true</skipMerge>
                    <verbose>true</verbose>
                    <yuiPreserveAllSemiColons>true</yuiPreserveAllSemiColons>
                    <webappSourceDir>${basedir}/WebContent</webappSourceDir>

                    <cssSourceDir>css</cssSourceDir>
                    <cssSourceIncludes>
                        <cssSourceInclude>**/*.css</cssSourceInclude>
                    </cssSourceIncludes>
                    <cssSourceExcludes>
                        <cssSourceExclude>**/*.min.css</cssSourceExclude>
                    </cssSourceExcludes>
                    <jsSourceDir>scripts</jsSourceDir>
                    <jsSourceIncludes>
                        <jsSourceInclude>**/*.js</jsSourceInclude>
                    </jsSourceIncludes>
                    <jsSourceExcludes>
                        <jsSourceExclude>**/*.min.js</jsSourceExclude>
                    </jsSourceExcludes>

                </configuration>
                <goals>
                    <goal>minify</goal>
                </goals>
            </execution>
        </executions>
    </plugin>

这是 pom.xml 中的插件配置,所有选项都可以正常工作(它识别源,跳过合并等),但 nosuffix 设置为 true 不会覆盖原始文件。 我不明白的是该插件完全理解源和目标,它甚至记录它节省了一些空间,但输出没有缩小:

[INFO] Creating the minified file [/mydir/css/styles.css].
[INFO] Uncompressed size: 32490 bytes.
[INFO] Compressed size: 24188 bytes minified (5833 bytes gzipped).

我错过了什么?

【问题讨论】:

标签: maven minify overwrite


【解决方案1】:

Minify Maven Plugin 默认在 Maven 阶段运行 process-resources
由于您将选项nosuffixskipMerge 都设置为true,这会导致输出文件与原始文件具有相同的路径,因此会导致输出文件在阶段@ 期间被源文件覆盖987654327@.

要解决此问题,请将插件执行阶段更改为 package

<plugin>
    <groupId>com.samaxes.maven</groupId>
    <artifactId>minify-maven-plugin</artifactId>
    <version>1.7.2</version>
    <executions>
        <execution>
            <id>default-minify</id>
            <phase>package</phase>
            <configuration>
                <!-- ... -->
            </configuration>
            <goals>
                <goal>minify</goal>
            </goals>
        </execution>
    </executions>
</plugin>

还有exclude your source files from the WAR package

【讨论】:

  • 我也遇到了同样的问题,但是即使在插件中将package设置为阶段后,css/js文件也没有最小化
  • 您还需要从 WAR 包中排除您的源文件。我更新了上面的答案。
猜你喜欢
  • 2017-10-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多