From 327d546705c8222192667ca1a1dbcc1f06209fff Mon Sep 17 00:00:00 2001 From: Nicholas Blair <nicholas.blair@wisc.edu> Date: Wed, 31 Aug 2016 09:06:40 -0500 Subject: [PATCH] feat: always populate MANIFEST with project.name and .version --- build.gradle | 11 +++++++-- .../gradle/ContinuousPublishPlugin.groovy | 24 +++++++++++++++++++ .../gradle/ContinuousPublishPluginTest.groovy | 1 + 3 files changed, 34 insertions(+), 2 deletions(-) diff --git a/build.gradle b/build.gradle index 0314851..4e99f25 100644 --- a/build.gradle +++ b/build.gradle @@ -1,5 +1,5 @@ group 'edu.wisc.doit.gradle' -version '0.1.1' +version '0.2.0' apply plugin: 'groovy' apply plugin: 'idea' @@ -26,7 +26,14 @@ publishing { } } } - +jar { + manifest { + attributes( + 'Implementation-Title': project.name, + 'Implementation-Version': project.version, + ) + } +} uploadArchives { repositories { mavenDeployer { diff --git a/src/main/groovy/edu/wisc/doit/gradle/ContinuousPublishPlugin.groovy b/src/main/groovy/edu/wisc/doit/gradle/ContinuousPublishPlugin.groovy index 8c9e535..df1a1be 100644 --- a/src/main/groovy/edu/wisc/doit/gradle/ContinuousPublishPlugin.groovy +++ b/src/main/groovy/edu/wisc/doit/gradle/ContinuousPublishPlugin.groovy @@ -2,6 +2,7 @@ package edu.wisc.doit.gradle import org.gradle.api.Plugin import org.gradle.api.Project +import org.gradle.api.Task /** * Root Gradle {@link Plugin} class. @@ -19,5 +20,28 @@ class ContinuousPublishPlugin implements Plugin<Project> { project.getTasks() .create("confirmProjectVersionIncremented", ConfirmProjectVersionIncrementedTask.class) + + // findByName can return null; getByName throws UnknownTaskException + configureManifest(project.getTasks().findByName("jar")) + configureManifest(project.getTasks().findByName("war")) + } + + /** + * Set 'Implementation-Title' and 'Implementation-Version' attributes + * in the task's manifest + * + * See https://docs.oracle.com/javase/tutorial/deployment/jar/packageman.html + * + * @param task the task to configure (null safe) + */ + void configureManifest(Task task) { + task?.configure { + manifest { + attributes( + 'Implementation-Title': project.name, + 'Implementation-Version': project.version + ) + } + } } } diff --git a/src/test/groovy/edu/wisc/doit/gradle/ContinuousPublishPluginTest.groovy b/src/test/groovy/edu/wisc/doit/gradle/ContinuousPublishPluginTest.groovy index 65f2fef..5789ee5 100644 --- a/src/test/groovy/edu/wisc/doit/gradle/ContinuousPublishPluginTest.groovy +++ b/src/test/groovy/edu/wisc/doit/gradle/ContinuousPublishPluginTest.groovy @@ -16,6 +16,7 @@ class ContinuousPublishPluginTest { @Test public void pluginAddsTaskToProject() { Project project = ProjectBuilder.builder().build() + project.pluginManager.apply 'java' project.pluginManager.apply 'edu.wisc.doit.gradle.continuous-publish-plugin' assertTrue(project.tasks.confirmProjectVersionIncremented instanceof ConfirmProjectVersionIncrementedTask) -- GitLab