diff --git a/cli/src/main/scala-2.11/coursier/cli/Options.scala b/cli/src/main/scala-2.11/coursier/cli/Options.scala index 564113d2d..9a5dfeeff 100644 --- a/cli/src/main/scala-2.11/coursier/cli/Options.scala +++ b/cli/src/main/scala-2.11/coursier/cli/Options.scala @@ -61,10 +61,10 @@ case class CommonOptions( @Value("configuration") @Short("c") defaultConfiguration: String = "default(compile)", - @Help("Default artifact type (make it empty to follow POM packaging - default: jar)") + @Help("Default artifact type (default: follow packaging infos, else default to jar)") @Value("type") @Short("a") - defaultArtifactType: String = "jar", + defaultArtifactType: String = "", @Help("Maximum number of parallel downloads (default: 6)") @Short("n") parallel: Int = 6, diff --git a/core/shared/src/main/scala/coursier/maven/MavenRepository.scala b/core/shared/src/main/scala/coursier/maven/MavenRepository.scala index 9cdf9982e..796b7f5ca 100644 --- a/core/shared/src/main/scala/coursier/maven/MavenRepository.scala +++ b/core/shared/src/main/scala/coursier/maven/MavenRepository.scala @@ -69,6 +69,10 @@ object MavenRepository { } else module.name + val ignorePackaging = Set( + Module("org.apache.zookeeper", "zookeeper", Map.empty) + ) + } case class MavenRepository( @@ -76,7 +80,8 @@ case class MavenRepository( changing: Option[Boolean] = None, /** Hackish hack for sbt plugins mainly - what this does really sucks */ sbtAttrStub: Boolean = false, - authentication: Option[Authentication] = None + authentication: Option[Authentication] = None, + packagingBlacklist: Set[Module] = MavenRepository.ignorePackaging ) extends Repository { import Repository._ @@ -260,7 +265,11 @@ case class MavenRepository( _ <- if (xml.label == "project") \/-(()) else -\/("Project definition not found") proj <- Pom.project(xml) } yield { - val packagingOpt = Pom.packagingOpt(xml) + val packagingOpt = + if (packagingBlacklist(module)) + None + else + Pom.packagingOpt(xml) proj.copy( configurations = defaultConfigurations, diff --git a/plugin/src/main/scala-2.10/coursier/CoursierPlugin.scala b/plugin/src/main/scala-2.10/coursier/CoursierPlugin.scala index 1b5f320cc..ae390a3b2 100644 --- a/plugin/src/main/scala-2.10/coursier/CoursierPlugin.scala +++ b/plugin/src/main/scala-2.10/coursier/CoursierPlugin.scala @@ -59,7 +59,7 @@ object CoursierPlugin extends AutoPlugin { override lazy val projectSettings = Seq( coursierParallelDownloads := 6, coursierMaxIterations := 50, - coursierDefaultArtifactType := "jar", + coursierDefaultArtifactType := "", coursierChecksums := Seq(Some("SHA-1"), None), coursierArtifactsChecksums := Seq(None), coursierCachePolicies := CachePolicy.default, diff --git a/plugin/src/sbt-test/sbt-coursier/aar-packaging/build.sbt b/plugin/src/sbt-test/sbt-coursier/aar-packaging/build.sbt new file mode 100644 index 000000000..ec102b4f9 --- /dev/null +++ b/plugin/src/sbt-test/sbt-coursier/aar-packaging/build.sbt @@ -0,0 +1,13 @@ +scalaVersion := "2.11.8" + +libraryDependencies += ("com.rengwuxian.materialedittext" % "library" % "2.1.4") + .exclude("com.android.support", "support-v4") + .exclude("com.android.support", "support-annotations") + .exclude("com.android.support", "appcompat-v7") + +coursierCachePolicies := { + if (sys.props("os.name").startsWith("Windows")) + coursierCachePolicies.value + else + Seq(coursier.CachePolicy.ForceDownload) +} diff --git a/plugin/src/sbt-test/sbt-coursier/aar-packaging/project/plugins.sbt b/plugin/src/sbt-test/sbt-coursier/aar-packaging/project/plugins.sbt new file mode 100644 index 000000000..152225a9e --- /dev/null +++ b/plugin/src/sbt-test/sbt-coursier/aar-packaging/project/plugins.sbt @@ -0,0 +1,11 @@ +{ + val pluginVersion = sys.props.getOrElse( + "plugin.version", + throw new RuntimeException( + """|The system property 'plugin.version' is not defined. + |Specify this property using the scriptedLaunchOpts -D.""".stripMargin + ) + ) + + addSbtPlugin("io.get-coursier" % "sbt-coursier" % pluginVersion) +} diff --git a/plugin/src/sbt-test/sbt-coursier/aar-packaging/src/main/scala/Main.scala b/plugin/src/sbt-test/sbt-coursier/aar-packaging/src/main/scala/Main.scala new file mode 100644 index 000000000..61295349d --- /dev/null +++ b/plugin/src/sbt-test/sbt-coursier/aar-packaging/src/main/scala/Main.scala @@ -0,0 +1,6 @@ +import java.io.File +import java.nio.file.Files + +object Main extends App { + Files.write(new File("output").toPath, "OK".getBytes("UTF-8")) +} diff --git a/plugin/src/sbt-test/sbt-coursier/aar-packaging/test b/plugin/src/sbt-test/sbt-coursier/aar-packaging/test new file mode 100644 index 000000000..2182f57b0 --- /dev/null +++ b/plugin/src/sbt-test/sbt-coursier/aar-packaging/test @@ -0,0 +1,3 @@ +$ delete output +> run +$ exists output