【发布时间】:2021-02-01 11:36:43
【问题描述】:
我想在 maven 项目中缩小 JS 和 CSS 文件。我使用了 minify-maven-plugin (com.samaxes.maven v1.7.6)。根据文档 (https://samaxes.github.io/minify-maven-plugin/minify-mojo.html),我已将 nosuffix> 和 skipMerge> 设置为 true 因为我想维护文件结构并用原始文件替换缩小的文件。我还设置了 phase>packagephase>。 生成和部署 WAR 文件后,JS 和 CSS 文件并没有缩小,它们和以前一样。 我还参考了一些 stackoverflow 答案,并根据https://stackoverflow.com/questions/22117824/using-samaxes-minify-nosuffix-to-overwrite-original-files 提供的建议设置了 warSourceExcludes> 选项 使用 warSourceExcludes> 选项后,当我在服务器上部署 WAR 文件时,JS 和 CSS 文件不可用,并且应用程序显示相同的 404 错误。请参考我的 pom.xml 配置:
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>3.2.1</version>
<configuration>
<warSourceDirectory>WebContent</warSourceDirectory>
<warSourceExcludes>**/*.css,**/*.js</warSourceExcludes>
</configuration>
</plugin>
<plugin>
<groupId>com.samaxes.maven</groupId>
<artifactId>minify-maven-plugin</artifactId>
<version>1.7.6</version>
<executions>
<execution>
<id>default-minify</id>
<phase>package</phase>
<configuration>
<charset>UTF-8</charset>
<webappSourceDir>${project.basedir}/WebContent</webappSourceDir>
<cssSourceDir>./</cssSourceDir>
<cssSourceIncludes>
<cssSourceInclude>**/*.css</cssSourceInclude>
</cssSourceIncludes>
<cssSourceExcludes>
<cssSourceExclude>**/*.min.css</cssSourceExclude>
</cssSourceExcludes>
<jsSourceDir>./</jsSourceDir>
<jsSourceIncludes>
<jsSourceInclude>**/*.js</jsSourceInclude>
</jsSourceIncludes>
<jsSourceExcludes>
<jsSourceExclude>**/*.min.js</jsSourceExclude>
</jsSourceExcludes>
<jsEngine>CLOSURE</jsEngine>
<nosuffix>true</nosuffix>
<skipMerge>true</skipMerge>
</configuration>
<goals>
<goal>minify</goal>
</goals>
</execution>
</executions>
</plugin>
请提出适当的解决方案。提前致谢!
【问题讨论】:
标签: maven maven-plugin minify maven-war-plugin