All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.github.danielflower.mavenplugins.gitlog.ShowMojo Maven / Gradle / Ivy

Go to download

Generates a changelog based on commits to a git repository in text and HTML format showing the changes that are included in each version. A possible use of this is to include these changelogs when packaging your maven project so that you have an accurate list of commits that the current package includes.

There is a newer version: 1.9.1
Show newest version
package com.github.danielflower.mavenplugins.gitlog;

import com.github.danielflower.mavenplugins.gitlog.renderers.ChangeLogRenderer;
import com.github.danielflower.mavenplugins.gitlog.renderers.MavenLoggerRenderer;
import org.apache.maven.plugin.AbstractMojo;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugin.MojoFailureException;
import org.apache.maven.plugins.annotations.Mojo;

import java.io.IOException;
import java.util.Arrays;
import java.util.List;

/**
 * Displays the git log in the maven build log.  Use the generate goal to generate reports.
 */
@Mojo(
		name = "show"
)
public class ShowMojo extends AbstractMojo {

	public void execute() throws MojoExecutionException, MojoFailureException {

		List renderers = Arrays.asList(new MavenLoggerRenderer(getLog()));
		Generator generator = new Generator(renderers, Defaults.COMMIT_FILTERS, getLog());

		try {
			generator.openRepository();
		} catch (IOException e) {
			throw new MojoExecutionException("Error opening git repository.  Is this Maven project hosted in a git repository? " +
					"No changelog will be generated.", e);
		} catch (NoGitRepositoryException e) {
			throw new MojoExecutionException("This maven project does not appear to be in a git repository, " +
					"therefore no git changelog will be generated.");
		}

		try {
			generator.generate("Git log");
		} catch (IOException e) {
			throw new MojoExecutionException("Error while generating changelog.  Some changelogs may be incomplete or corrupt.", e);
		}
	}


}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy