Bundle&Minify在Maven Web项目中不起作用

时间:2018-10-22 09:08:48

标签: java maven java-ee bundle minify

我正在尝试在示例项目中this plugin(以优化性能)将所有CSS捆绑到一个CSS中,并且将所有JS捆绑到一个具有缩小版本的JS中,但是在清理和构建后,项目结构保持不变。一切都没有改变。

我也在Github提出了类似的罚单,但没有收到任何更新。

请找到我的项目结构:

├── pom.xml
└── src
    ├── main
    │   ├── java
    │   │   └── com
    │   │       └── darshan
    │   │           └── SourceMapFilter.java
    │   ├── resources
    │   │   ├── readme.txt
    │   │   └── static-bundles.json
    │   └── webapp
    │       ├── css
    │       │   ├── custom.css
    │       │   └── style.css
    │       ├── index.html
    │       ├── js
    │       │   ├── custom.js
    │       │   └── script.js
    │       ├── META-INF
    │       │   └── context.xml
    │       └── WEB-INF
    │           └── web.xml
    └── test
        └── java

static-bundles.json:

{
    "bundles": [
        {
            "type": "css",
            "name": "static-combined.css",
            "files": [
                "custom.css",
                "style.css"
            ]
        },
        {
            "type": "js",
            "name": "static-combined.js",
            "files": [
                "custom.js",
                "script.js"
            ]
        }
    ]
}

pom.xml插件配置:

<plugin>
    <groupId>com.samaxes.maven</groupId>
    <artifactId>minify-maven-plugin</artifactId>
    <version>1.7.6</version>
    <executions>
        <execution>
            <id>bundle-minify</id>
            <phase>package</phase>
            <goals>
                <goal>minify</goal>
            </goals>
            <configuration>
                <webappSourceDir>${project.basedir}</webappSourceDir>
                <webappTargetDir>${project.basedir}</webappTargetDir>

                <cssSourceDir>css</cssSourceDir>
                <cssSourceFiles>
                    <cssSourceFile>custom.css</cssSourceFile>
                    <cssSourceFile>style.css</cssSourceFile>
                </cssSourceFiles>
                <cssTargetDir>css</cssTargetDir>
                <cssFinalFile>static-combined.css</cssFinalFile>
                <cssSourceDir>js</cssSourceDir>
                <jsSourceFiles>
                    <jsSourceFile>custom.js</jsSourceFile>
                    <jsSourceFile>script.js</jsSourceFile>
                </jsSourceFiles>
                <jsTargetDir>js</jsTargetDir>
                <jsFinalFile>static-combined.js</jsFinalFile>
            </configuration>
        </execution>
    </executions>
</plugin>

我已经尝试了绝对路径,但是也没有运气。使用JDK 1.8。

1 个答案:

答案 0 :(得分:0)

我正在共享替代插件,它可以解决我的目的,因为以前的插件(请参见问题)既不适用于我,也无法在此处和github上接收任何更新。

./demo中添加以下插件。

pom.xml

请注意,不需要index.html。它会自动生成。

index-dev.html :(请注意,捆绑注释是必填项)

<plugin>
    <groupId>com.github.kospiotr</groupId>
    <artifactId>bundler-maven-plugin</artifactId>
    <version>1.8</version>
    <executions>
        <execution>
            <id>js</id>
            <goals>
                <goal>process</goal>
            </goals>
            <configuration>
                <verbose>true</verbose>
                <munge>false</munge>
                <inputFilePah>${project.basedir}/src/main/webapp/index-dev.html</inputFilePah>
                <outputFilePath>${project.build.directory}/${project.build.finalName}/index.html</outputFilePath>
            </configuration>
        </execution>
    </executions>
</plugin>

生成的index.html

<!-- bundle:css app-#hash#.min.css-->
<link href="css/style.css" rel="stylesheet" type="text/css"/>
<link href="css/custom.css" rel="stylesheet" type="text/css"/>
<!-- /bundle -->

<!-- bundle:js app-#hash#.min.js-->
<script src="js/custom.js"></script>
<script src="js/script.js"></script>
<!-- /bundle -->

输出结构

<link rel="stylesheet" href="app-d3c9aea5a76e300e113c07b3717683b3.min.css"/>
<script src="app-f1b7efa7214d328d11623c0f4b3efb19.min.js"></script>

我正在工作的github项目:https://github.com/darsh9292/bundle-web-app

如果有人仍然对我以前提到的插件有解决方案,请发表您的答案。