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"