com.selesse.gradle.git.changelog.GitLogPlugin.groovy Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of gradle-git-changelog Show documentation
Show all versions of gradle-git-changelog Show documentation
Generate Git changelogs for Gradle projects
package com.selesse.gradle.git.changelog
import com.selesse.gradle.git.changelog.tasks.GenerateChangelogTask
import org.gradle.api.Plugin
import org.gradle.api.Project
import org.gradle.api.Task
import org.gradle.api.logging.Logger
import org.gradle.api.logging.Logging
import org.gradle.api.plugins.BasePlugin
import org.gradle.api.plugins.JavaPlugin
class GitLogPlugin implements Plugin {
Logger logger = Logging.getLogger(GitLogPlugin)
private GitChangelogExtension extension
@Override
void apply(Project project) {
applyPluginDependency(project)
extension = project.extensions.create("changelog", GitChangelogExtension)
extension.with {
title = project.name
outputDirectory = project.buildDir
}
logger.info("Initialized with settings: ${extension}")
}
def applyPluginDependency(Project project) {
GenerateChangelogTask task = project.tasks.create("generateChangelog", GenerateChangelogTask)
project.afterEvaluate {
project.plugins.withType(JavaPlugin) {
logger.info("Configuring Java plugin")
Task processResources = project.tasks.processResources
if (processResources != null) {
logger.debug("Making assembleTask depend on ${task.name}")
processResources.dependsOn(task)
logger.debug("Setting destination directory to {}", processResources.destinationDir)
project.extensions.changelog.outputDirectory = processResources.destinationDir
}
}
if (project.plugins.findPlugin(JavaPlugin) == null) {
project.plugins.withType(BasePlugin) {
logger.debug("Configuring Base Plugin")
Task assembleTask = project.tasks.getByName("assemble") as Task
if (assembleTask != null) {
logger.debug("Making assembleTask depend on ${task.name}")
assembleTask.dependsOn(task)
}
}
}
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy