![JAR search and dependency download from the Maven repository](/logo.png)
de.sstoehr.imageoptimizermavenplugin.ImageOptimizerMojo Maven / Gradle / Ivy
package de.sstoehr.imageoptimizermavenplugin;
import de.sstoehr.imageoptimizermavenplugin.jobs.Job;
import de.sstoehr.imageoptimizermavenplugin.jobs.JobRunner;
import de.sstoehr.imageoptimizermavenplugin.optimizers.JpegOptim;
import de.sstoehr.imageoptimizermavenplugin.optimizers.Optimizer;
import de.sstoehr.imageoptimizermavenplugin.optimizers.PngQuant;
import de.sstoehr.imageoptimizermavenplugin.optimizers.UnsupportedOptimizerException;
import net.oneandone.sushi.fs.Node;
import net.oneandone.sushi.fs.World;
import org.apache.maven.plugin.AbstractMojo;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugin.MojoFailureException;
import org.apache.maven.plugins.annotations.LifecyclePhase;
import org.apache.maven.plugins.annotations.Mojo;
import org.apache.maven.plugins.annotations.Parameter;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@Mojo(name = "optimize", defaultPhase = LifecyclePhase.GENERATE_RESOURCES, requiresProject = true)
public class ImageOptimizerMojo extends AbstractMojo {
private static final Logger LOG = LoggerFactory.getLogger(ImageOptimizerMojo.class);
@Parameter
private String jpegFilter = "**/*.jpg,**/*.jpeg,**/*.JPG,**/*.JPEG";
@Parameter
private String pngFilter = "**/*.png,**/*.PNG";
@Parameter(property = "optimize.basedir", defaultValue = "${basedir}")
private String basedir;
@Override
public void execute() throws MojoExecutionException, MojoFailureException {
World world = new World();
Node base = world.file(basedir);
JobRunner jobRunner = new JobRunner(base);
if (!this.jpegFilter.equalsIgnoreCase("false")) {
Optimizer jpegOptimizer = null;
try {
jpegOptimizer = new JpegOptim();
} catch (UnsupportedOptimizerException e) {
LOG.info("JpegOptim is not installed: https://github.com/sdstoehr/image-optimizer-maven-plugin/wiki/Install");
}
if (jpegOptimizer != null) {
Job jpegJob = new Job("JPEG", base, this.jpegFilter, jpegOptimizer);
jobRunner.schedule(jpegJob);
}
}
if (!this.pngFilter.equalsIgnoreCase("false")) {
Optimizer pngOptimizer = null;
try {
pngOptimizer = new PngQuant();
} catch (UnsupportedOptimizerException e) {
LOG.info("PngQuant is not installed: https://github.com/sdstoehr/image-optimizer-maven-plugin/wiki/Install");
}
if (pngOptimizer != null) {
Job pngJob = new Job("PNG", base, this.pngFilter, pngOptimizer);
jobRunner.schedule(pngJob);
}
}
jobRunner.run();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy