在 Maven 中,是否可以缩小文件而不将它们打包成更大的文件?
In Maven, is it possible to minify files without packaging them into a larger file?
我在 Java 6 中使用 Maven 3.3。我正在寻找一个可以缩小 CSS 和 JS 文件但不将它们打包成单个文件,而是压缩每个文件的插件并使用相同的文件名和目录结构将其放入 Web 应用程序中。所以如果我有这个文件
src/main/webapp/css/my.css
生成的缩小文件将进入
target/myproject/css/my.css
我正在尝试使用 Maven minifier 插件使用下面的配置来做到这一点,但是我的 Java 脚本文件被打包成一个叫做“script.js”的东西和 CSS文件同样被打包成一个巨大的 CSS 文件。有没有一种方法可以缩小每个文件而不用将它们全部压缩到一个文件中?
<profile>
<id>minififiles</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<build>
<plugins>
<plugin>
<groupId>com.samaxes.maven</groupId>
<artifactId>minify-maven-plugin</artifactId>
<version>1.7.4</version>
<executions>
<execution>
<id>default-minify</id>
<phase>process-resources</phase>
<configuration>
<cssSourceIncludes>
<cssSourceInclude>**/*.css</cssSourceInclude>
</cssSourceIncludes>
<jsSourceIncludes>
<jsSourceInclude>**/*.js</jsSourceInclude>
</jsSourceIncludes>
<jsEngine>CLOSURE</jsEngine>
<webappTargetDir>${project.build.outputDirectory}</webappTargetDir>
</configuration>
<goals>
<goal>minify</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
您可以将以下选项添加到您的配置中:
<skipMerge>true</skipMerge>
<nosuffix>true</nosuffix>
但请注意,如果您使用的是默认目标目录(因为您覆盖了选项 webappTargetDir
,所以没有使用),并且您同时设置了选项 nosuffix
和 skipMerge
设置为true
,插件执行阶段需要设置为package
,否则打包时输出文件会被源文件覆盖。
您使用的插件版本需要 Java 7,无法与 Java 6 一起使用。
我在 Java 6 中使用 Maven 3.3。我正在寻找一个可以缩小 CSS 和 JS 文件但不将它们打包成单个文件,而是压缩每个文件的插件并使用相同的文件名和目录结构将其放入 Web 应用程序中。所以如果我有这个文件
src/main/webapp/css/my.css
生成的缩小文件将进入
target/myproject/css/my.css
我正在尝试使用 Maven minifier 插件使用下面的配置来做到这一点,但是我的 Java 脚本文件被打包成一个叫做“script.js”的东西和 CSS文件同样被打包成一个巨大的 CSS 文件。有没有一种方法可以缩小每个文件而不用将它们全部压缩到一个文件中?
<profile>
<id>minififiles</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<build>
<plugins>
<plugin>
<groupId>com.samaxes.maven</groupId>
<artifactId>minify-maven-plugin</artifactId>
<version>1.7.4</version>
<executions>
<execution>
<id>default-minify</id>
<phase>process-resources</phase>
<configuration>
<cssSourceIncludes>
<cssSourceInclude>**/*.css</cssSourceInclude>
</cssSourceIncludes>
<jsSourceIncludes>
<jsSourceInclude>**/*.js</jsSourceInclude>
</jsSourceIncludes>
<jsEngine>CLOSURE</jsEngine>
<webappTargetDir>${project.build.outputDirectory}</webappTargetDir>
</configuration>
<goals>
<goal>minify</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
您可以将以下选项添加到您的配置中:
<skipMerge>true</skipMerge>
<nosuffix>true</nosuffix>
但请注意,如果您使用的是默认目标目录(因为您覆盖了选项 webappTargetDir
,所以没有使用),并且您同时设置了选项 nosuffix
和 skipMerge
设置为true
,插件执行阶段需要设置为package
,否则打包时输出文件会被源文件覆盖。
您使用的插件版本需要 Java 7,无法与 Java 6 一起使用。