我正在使用Samaxes minify maven插件来缩小js和css文件。 该插件在创建新文件时可以正常工作,同时缩小了js和css,但我希望缩小的文件与原始文件的名称相同(覆盖它们)。 所以我试图在pom.xml中添加nosuffix,如下所示:
<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).
我错过了什么?
答案 0 :(得分:2)
Minify Maven Plugin在Maven阶段process-resources
期间运行
由于您要将nosuffix
和skipMerge
选项设置为true
,这会导致输出文件与原始文件具有相同的路径,因此会导致输出文件被覆盖阶段package
期间的源文件。
要解决此问题,请将插件执行阶段更改为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>