diff --git a/build.gradle b/build.gradle index 0314851b4dc47ccd3036d2db0156af0925fe8779..4e99f2515867b1b3c2b7b16063ffbcc739e2e53e 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 8c9e535e0be34ef3aaf61c8014be1ad72da62b3b..df1a1be2bf33d1016ddad5e63e31ce568efcf5cd 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 65f2fef25cb2b1c763fcd3330736a27f3dd607f7..5789ee52ea080dd3100058ff51f4e6a4453c29f6 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)