【问题标题】:In Maven, is it possible to minify files without packaging them into a larger file?在 Maven 中,是否可以缩小文件而不将它们打包成更大的文件?
【发布时间】:2016-03-21 03:17:15
【问题描述】:

我正在使用带有 Java 6 的 Maven 3.3。我正在寻找一个可以缩小 CSS 和 JS 文件但不将它们打包到单个文件中的插件,而是压缩每个文件并将其放入 Web 应用程序中使用相同的文件名和目录结构。所以如果我有这个文件

src/main/webapp/css/my.css

生成的缩小文件将进入

target/myproject/css/my.css

我正在尝试使用 Maven minifier 插件使用以下配置来执行此操作,但是我的 Javascript 文件被打包成一个名为“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>

【问题讨论】:

  • 基于docs,它应该已经这样做了,因为skipMerge默认是false ..?所以我假设你在其他地方有其他配置?

标签: maven maven-plugin minify


【解决方案1】:

您可以在配置中添加以下选项:

<skipMerge>true</skipMerge>
<nosuffix>true</nosuffix>

但请注意,如果您使用的是默认目标目录(因为您覆盖了选项 webappTargetDir,所以您没有使用默认目标目录),并且您将选项 nosuffixskipMerge 都设置为 true ,插件执行阶段需要设置为package,否则打包时输出文件会被源文件覆盖。

您使用的插件版本需要 Java 7,不适用于 Java 6。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-07
    • 1970-01-01
    • 2013-10-28
    相关资源
    最近更新 更多