diff --git a/src/main/scala/sbt/ManageDependencies.scala b/src/main/scala/sbt/ManageDependencies.scala index d0ad1b205..6d865e443 100644 --- a/src/main/scala/sbt/ManageDependencies.scala +++ b/src/main/scala/sbt/ManageDependencies.scala @@ -235,10 +235,15 @@ object ManageDependencies { import module._ - + { if(hasInfo(dependencies)) + scala.xml.NodeSeq.Empty + else + + } {dependencies} } + def hasInfo(x: scala.xml.NodeSeq) = !({x} \ "info").isEmpty /** Performs checks/adds filters on Scala dependencies (if enabled in IvyScala). */ def checkModule(moduleAndConf: (ModuleDescriptor, String)): Either[String, (ModuleDescriptor, String)] = ivyScala match diff --git a/src/sbt-test/dependency-management/info/project/build.properties b/src/sbt-test/dependency-management/info/project/build.properties new file mode 100644 index 000000000..54ea234fa --- /dev/null +++ b/src/sbt-test/dependency-management/info/project/build.properties @@ -0,0 +1,3 @@ +project.name=test +project.org=test +project.version=1.0 diff --git a/src/sbt-test/dependency-management/info/project/build/InfoTest.scala b/src/sbt-test/dependency-management/info/project/build/InfoTest.scala new file mode 100644 index 000000000..fc4759671 --- /dev/null +++ b/src/sbt-test/dependency-management/info/project/build/InfoTest.scala @@ -0,0 +1,35 @@ +import sbt._ + +class InfoTest(info: ProjectInfo) extends DefaultProject(info) +{ + def ivyCacheDirectory = outputPath / "ivy-cache" + override def updateOptions = CacheDirectory(ivyCacheDirectory) :: super.updateOptions.toList + + override def ivyXML = + if(customInfo) + ( + + + ScalaQuery is a type-safe database query API for Scala. + + + ) + else + + + def customInfo = "info".asFile.exists + + lazy val checkDownload = task { if(compileClasspath.get.isEmpty) Some("Dependency not downloaded") else None } + lazy val checkInfo = task { + if((delivered \ "info").isEmpty) + Some("No info tag generated") + else if(customInfo) + if( deliveredWithCustom ) None else Some("Expected 'license' and 'description' tags in info tag, got: \n" + (delivered \ "info")) + else + if( deliveredWithCustom ) Some("Expected empty 'info' tag, got: \n" + (delivered \ "info")) else None + } + def deliveredWithCustom = !(delivered \ "info" \ "license").isEmpty && !(delivered \ "info" \ "description").isEmpty + def delivered = scala.xml.XML.loadFile(ivyFile) + + def ivyFile = (outputPath * "ivy*.xml").get.toList.head.asFile +} \ No newline at end of file diff --git a/src/sbt-test/dependency-management/info/test b/src/sbt-test/dependency-management/info/test new file mode 100644 index 000000000..b301d8a4f --- /dev/null +++ b/src/sbt-test/dependency-management/info/test @@ -0,0 +1,13 @@ +> update [success] +> check-download [success] +> deliver-local [success] +> check-info [success] + +> clean [success] +> clean-lib [success] +$ touch info [success] + +> update [success] +> check-download [success] +> deliver-local [success] +> check-info [success] \ No newline at end of file