WARNING: THIS SITE IS A MIRROR OF GITHUB.COM / IT CANNOT LOGIN OR REGISTER ACCOUNTS / THE CONTENTS ARE PROVIDED AS-IS / THIS SITE ASSUMES NO RESPONSIBILITY FOR ANY DISPLAYED CONTENT OR LINKS / IF YOU FOUND SOMETHING MAY NOT GOOD FOR EVERYONE, CONTACT ADMIN AT ilovescratch@foxmail.com
Skip to content

codelibs/yuicompressor-maven-plugin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

YUI Compressor Maven Plugin

CI Maven Central License: Unlicense

Overview

Maven plugin to compress (minify/obfuscate/aggregate) JavaScript and CSS files using YUI Compressor.

This project is a fork of net.alchim31.maven:yuicompressor-maven-plugin maintained by the CodeLibs Project for continued development and modern Maven support.

Features

  • JavaScript Compression: Minification and obfuscation using YUI Compressor
  • CSS Compression: Minification of CSS files
  • JSLint Integration: Validate JavaScript files during build
  • File Aggregation: Concatenate multiple files before or after compression
  • GZIP Support: Automatically create gzipped versions
  • Incremental Builds: IDE integration with M2E incremental build support
  • Selective Compression: Skip already-minified files
  • Compression Statistics: Optional reporting of compression ratios

Requirements

  • Maven 3.8.8 or later
  • Java 11 or later

Usage

Basic Configuration

Add the plugin to your pom.xml:

<build>
    <plugins>
        <plugin>
            <groupId>org.codelibs.maven</groupId>
            <artifactId>yuicompressor-maven-plugin</artifactId>
            <version>2.0.0-SNAPSHOT</version>
            <executions>
                <execution>
                    <goals>
                        <goal>compress</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

Configuration Options

Common Parameters

Parameter Default Description
encoding UTF-8 File encoding
suffix -min Output filename suffix
nosuffix false Skip suffix addition
linebreakpos -1 Line break position
force false Force recompression
gzip false Create gzipped versions
statistics true Show compression statistics

JavaScript-Specific Parameters

Parameter Default Description
nocompress false Skip compression (copy only)
nomunge false Minify only, no obfuscation
preserveAllSemiColons false Keep unnecessary semicolons
disableOptimizations false Disable micro optimizations
jswarn true Display JavaScript warnings

Examples

Compress with Custom Suffix

<configuration>
    <suffix>.compressed</suffix>
</configuration>

Create GZIP Versions

<configuration>
    <gzip>true</gzip>
    <level>9</level>
</configuration>

File Aggregation

<configuration>
    <aggregations>
        <aggregation>
            <output>${project.build.directory}/all.js</output>
            <includes>
                <include>file1.js</include>
                <include>file2.js</include>
            </includes>
            <insertNewLine>true</insertNewLine>
        </aggregation>
    </aggregations>
</configuration>

JSLint Validation

<execution>
    <goals>
        <goal>jslint</goal>
    </goals>
</execution>

Build Instructions

Prerequisites

  • JDK 11 or later
  • Maven 3.8.8 or later

Build Commands

# Build the plugin
mvn clean install

# Run tests
mvn test

# Run integration tests
mvn verify

# Skip tests
mvn install -DskipTests

# Generate site documentation
mvn site

Migration from net.alchim31.maven

If you're migrating from net.alchim31.maven:yuicompressor-maven-plugin, simply update your pom.xml:

<!-- Old -->
<groupId>net.alchim31.maven</groupId>
<artifactId>yuicompressor-maven-plugin</artifactId>
<version>1.5.1</version>

<!-- New -->
<groupId>org.codelibs.maven</groupId>
<artifactId>yuicompressor-maven-plugin</artifactId>
<version>2.0.0-SNAPSHOT</version>

All configuration options remain compatible.

Issues

Found a bug or have a feature request? Please report it to the issue tracker.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Credits

Original Authors

CodeLibs Maintainers

License

This project is released into the public domain under The Unlicense.

Links

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 14