Bhuvan
Bhuvan

Reputation: 2229

How to compress JS and css in java at build time using maven-minify-plugin with YUI compressor

I want to use maven-minify plugin with YUI compressor for compressing JS and css at build time. My JS and CSS are kept in different folders. For instance. 'X' JS files are present in one folder and remaining are present in different folder. Same is the case with CSS files.

Also I want to know, how does reference of JS and CSS gets changed in JSP,if in case the file name changes from jsFileName.js to something like jsFileName-min.js

Please let me know how to use this plugin as I am completely new to this.

Upvotes: 2

Views: 9383

Answers (1)

Nishant
Nishant

Reputation: 55886

Use Samaxes plug-in, configure like this:

<plugin>
    <groupId>com.samaxes.maven</groupId>
    <artifactId>maven-minify-plugin</artifactId>
    <version>1.3.5</version>
    <executions>
        <execution>
            <id>min-js</id>
            <phase>process-resources</phase>
            <configuration>
                <cssSourceDir>relative/path/to/css/dir</cssSourceDir>
                <cssSourceFiles>
                    <cssSourceFile>subfolder1/1.css</cssSourceFile>
                    <cssSourceFile>subfolder1/3.css</cssSourceFile>
                    <cssSourceFile>subfolder2/2.css</cssSourceFile>
                </cssSourceFiles>
                <cssTargetDir>relative/path/to/final/location</cssTargetDir>
                <cssFinalFile>minified.css</cssFinalFile>

                <jsSourceDir>relative/path/to/js/dir</jsSourceDir>
                <jsSourceFiles>
                    <jsSourceFile>subfolder3/1.js</jsSourceFile>
                    <jsSourceFile>subfolder4/2.js</jsSourceFile>
                </jsSourceFiles>
                <jsFinalFile>minifiedname.js</jsFinalFile>
                <jsTargetDir>rel/path/to/final/location</jsTargetDir>
            </configuration>
            <goals>
                <goal>minify</goal>
            </goals>
        </execution>
        <!-- more execution statements -->
    </executions>                               
</plugin>

Upvotes: 15

Related Questions