diff --git a/main/src/main/scala/sbt/internal/PomGenerator.scala b/main/src/main/scala/sbt/internal/PomGenerator.scala index 99816eb16..34137cb91 100644 --- a/main/src/main/scala/sbt/internal/PomGenerator.scala +++ b/main/src/main/scala/sbt/internal/PomGenerator.scala @@ -46,6 +46,8 @@ private[sbt] object PomGenerator: 4.0.0 {makeModuleID(crossMid)} {info.map(i => {i.nameFormal}).getOrElse(NodeSeq.Empty)} + {info.map(makeDescription).getOrElse(NodeSeq.Empty)} + {info.map(makeHomePage).getOrElse(NodeSeq.Empty)} {info.map(makeStartYear).getOrElse(NodeSeq.Empty)} {info.map(makeOrganization).getOrElse(NodeSeq.Empty)} {info.map(makeScmInfo).getOrElse(NodeSeq.Empty)} @@ -96,6 +98,16 @@ private[sbt] object PomGenerator: private val IgnoreTypes: Set[String] = Set(Artifact.SourceType, Artifact.DocType, Artifact.PomType) + private def makeDescription(info: ModuleInfo): NodeSeq = + if info.description != null && info.description.nonEmpty then + {info.description} + else NodeSeq.Empty + + private def makeHomePage(info: ModuleInfo): NodeSeq = + info.homepage match + case Some(h) => {h} + case _ => NodeSeq.Empty + private def makeStartYear(info: ModuleInfo): NodeSeq = info.startYear match case Some(y) => {y} diff --git a/sbt-app/src/sbt-test/dependency-management/make-pom/build.sbt b/sbt-app/src/sbt-test/dependency-management/make-pom/build.sbt index 6df5b827a..ecf866e0e 100644 --- a/sbt-app/src/sbt-test/dependency-management/make-pom/build.sbt +++ b/sbt-app/src/sbt-test/dependency-management/make-pom/build.sbt @@ -6,6 +6,8 @@ lazy val root = (project in file(".")).settings( val converter = fileConverter.value XML.loadFile(converter.toPath(vf).toFile) }, + description := "pom.xml test description", + homepage := Some(url("https://example.com/pom_test_url")), TaskKey[Unit]("checkPom") := checkPom.value, TaskKey[Unit]("checkExtra") := checkExtra.value, TaskKey[Unit]("checkVersionPlusMapping") := checkVersionPlusMapping.value, @@ -65,6 +67,10 @@ lazy val checkReleaseNotesURL = readPom.map: pomXml => lazy val checkPom = Def.task { val pomXML = readPom.value checkProject(pomXML) + val urlFromPom = (pomXML \ "url").text + assert(urlFromPom == "https://example.com/pom_test_url", s"Expected homepage url, got: $urlFromPom") + val descriptionFromPom = (pomXML \ "description").text + assert(descriptionFromPom == "pom.xml test description", s"Expected description, got: $descriptionFromPom") val ivyRepositories = fullResolvers.value withRepositories(pomXML) { repositoriesElement => val repositories = repositoriesElement \ "repository"