diff --git a/main/src/main/scala/sbt/coursierint/CoursierInputsTasks.scala b/main/src/main/scala/sbt/coursierint/CoursierInputsTasks.scala
index b437cfd32..a579e766c 100644
--- a/main/src/main/scala/sbt/coursierint/CoursierInputsTasks.scala
+++ b/main/src/main/scala/sbt/coursierint/CoursierInputsTasks.scala
@@ -45,6 +45,8 @@ object CoursierInputsTasks {
sv: String,
sbv: String,
auOpt: Option[URL],
+ description: String,
+ homepage: Option[URL],
log: Logger
): CProject = {
@@ -63,12 +65,15 @@ object CoursierInputsTasks {
case (config, dep) =>
(config, dep.withExclusions(dep.exclusions ++ exclusions0))
})
- auOpt match {
+ val proj2 = auOpt match {
case Some(au) =>
val props = proj1.properties :+ ("info.apiURL" -> au.toString)
proj1.withProperties(props)
case _ => proj1
}
+ proj2.withInfo(
+ proj2.info.withDescription(description).withHomePage(homepage.fold("")(_.toString))
+ )
}
def coursierProjectTask: Def.Initialize[sbt.Task[CProject]] =
@@ -81,6 +86,8 @@ object CoursierInputsTasks {
scalaVersion.value,
scalaBinaryVersion.value,
apiURL.value,
+ description.value,
+ homepage.value,
streams.value.log
)
}
diff --git a/main/src/main/scala/sbt/internal/librarymanagement/IvyXml.scala b/main/src/main/scala/sbt/internal/librarymanagement/IvyXml.scala
index 9934d485c..95f5bb24f 100644
--- a/main/src/main/scala/sbt/internal/librarymanagement/IvyXml.scala
+++ b/main/src/main/scala/sbt/internal/librarymanagement/IvyXml.scala
@@ -104,6 +104,14 @@ object IvyXml {
}
}
+ val descriptionElem = {
+ val n = {project.info.description}
+ if (project.info.homePage.nonEmpty)
+ n % .attributes
+ else
+ n
+ }
+
val infoElem = {
{licenseElems}
- {project.info.description}
+ {descriptionElem}
} % infoAttrs
diff --git a/sbt/src/sbt-test/dependency-management/make-ivy-xml/build.sbt b/sbt/src/sbt-test/dependency-management/make-ivy-xml/build.sbt
new file mode 100644
index 000000000..98c0eadcb
--- /dev/null
+++ b/sbt/src/sbt-test/dependency-management/make-ivy-xml/build.sbt
@@ -0,0 +1,24 @@
+import scala.xml.XML
+
+val descriptionValue = "This is just a test"
+val homepageValue = "http://example.com"
+
+lazy val root = (project in file(".")) settings(
+ name := "ivy-xml-test",
+ description := descriptionValue,
+ homepage := Some(url(homepageValue)),
+
+ TaskKey[Unit]("checkIvyXml") := {
+ val ivyXml = XML.loadFile(makeIvyXml.value)
+ val description = (ivyXml \ "info" \ "description").head
+ val homepage = (description \ "@homepage").head
+
+ if (description.text != descriptionValue)
+ sys.error(s"Unexpected description: ${description.text}")
+
+ if (homepage.text != homepageValue)
+ sys.error(s"Unexpected homepage: ${homepage.text}")
+
+ ()
+ }
+)
diff --git a/sbt/src/sbt-test/dependency-management/make-ivy-xml/test b/sbt/src/sbt-test/dependency-management/make-ivy-xml/test
new file mode 100644
index 000000000..0c84f997a
--- /dev/null
+++ b/sbt/src/sbt-test/dependency-management/make-ivy-xml/test
@@ -0,0 +1 @@
+> checkIvyXml