diff --git a/main/src/main/scala/sbt/Defaults.scala b/main/src/main/scala/sbt/Defaults.scala index 81aa5e509..d8b51d201 100644 --- a/main/src/main/scala/sbt/Defaults.scala +++ b/main/src/main/scala/sbt/Defaults.scala @@ -200,7 +200,8 @@ object Defaults extends BuildCommon { autoCompilerPlugins :== true, scalaHome :== None, apiURL := None, - javaHome :== None, + releaseNotesURL := None + javaHome :== None, discoveredJavaHomes := CrossJava.discoverJavaHomes, javaHomes :== ListMap.empty, fullJavaHomes := CrossJava.expandJavaHomes(discoveredJavaHomes.value ++ javaHomes.value), @@ -3344,7 +3345,12 @@ object Classpaths { p1.extra(SbtPomExtraProperties.VERSION_SCHEME_KEY -> x) case _ => p1 } - p2 + val p3 = releaseNotesURL.value match { + case Some(u) => + p1.extra("info.releaseNotesUrl" -> u.toExternalForm) + case _ => p2 + } + p3 } def pluginProjectID: Initialize[ModuleID] = Def.setting { diff --git a/main/src/main/scala/sbt/Keys.scala b/main/src/main/scala/sbt/Keys.scala index 10ae7f1b1..65bc3687b 100644 --- a/main/src/main/scala/sbt/Keys.scala +++ b/main/src/main/scala/sbt/Keys.scala @@ -346,6 +346,7 @@ object Keys { val entryApiURL = AttributeKey[URL]("entryApiURL", "Base URL for the API documentation for a classpath entry.") val apiMappings = taskKey[Map[File, URL]]("Mappings from classpath entry to API documentation base URL.").withRank(BMinusSetting) val autoAPIMappings = settingKey[Boolean]("If true, automatically manages mappings to the API doc URL.").withRank(BMinusSetting) + val releaseNotesURL = settingKey[Option[URL]]("URL for release notes.").withRank(BMinusSetting) val scmInfo = settingKey[Option[ScmInfo]]("Basic SCM information for the project.").withRank(BMinusSetting) val projectInfo = settingKey[ModuleInfo]("Addition project information like formal name, homepage, licenses etc.").withRank(CSetting) val defaultConfiguration = settingKey[Option[Configuration]]("Defines the configuration used when none is specified for a dependency in ivyXML.").withRank(CSetting)