Set default artifact type to jar from the CLI tools

Fixes https://github.com/alexarchambault/coursier/issues/302
This commit is contained in:
Alexandre Archambault 2016-07-23 17:37:00 +02:00
parent efbcbbf860
commit 2283a34829
No known key found for this signature in database
GPG Key ID: 14640A6839C263A9
6 changed files with 29 additions and 12 deletions

View File

@ -75,10 +75,12 @@ case class Bootstrap(
val helper = new Helper(options.common, remainingArgs)
val isolatedDeps = options.isolated.isolatedDeps(options.common.defaultArtifactType)
val (_, isolatedArtifactFiles) =
options.isolated.targets.foldLeft((Vector.empty[String], Map.empty[String, (Seq[String], Seq[File])])) {
case ((done, acc), target) =>
val subRes = helper.res.subset(options.isolated.isolatedDeps.getOrElse(target, Nil).toSet)
val subRes = helper.res.subset(isolatedDeps.getOrElse(target, Nil).toSet)
val subArtifacts = subRes.artifacts.map(_.url)
val filteredSubArtifacts = subArtifacts.diff(done)
@ -86,7 +88,7 @@ case class Bootstrap(
def subFiles0 = helper.fetch(
sources = false,
javadoc = false,
subset = options.isolated.isolatedDeps.getOrElse(target, Seq.empty).toSet
subset = isolatedDeps.getOrElse(target, Seq.empty).toSet
)
val (subUrls, subFiles) =

View File

@ -244,6 +244,7 @@ class Helper(
Dependency(
module,
version,
attributes = Attributes(defaultArtifactType, ""),
configuration = configOpt.getOrElse(defaultConfiguration),
exclusions = excludes
)
@ -254,6 +255,7 @@ class Helper(
Dependency(
module,
version,
attributes = Attributes(defaultArtifactType, ""),
configuration = configOpt.getOrElse(defaultConfiguration),
exclusions = excludes,
transitive = false

View File

@ -104,6 +104,9 @@ case class Launch(
if (options.isolated.isolated.isEmpty)
(parentLoader0, files0)
else {
val isolatedDeps = options.isolated.isolatedDeps(options.common.defaultArtifactType)
val (isolatedLoader, filteredFiles0) = options.isolated.targets.foldLeft((parentLoader0, files0)) {
case ((parent, files0), target) =>
@ -111,7 +114,7 @@ case class Launch(
val isolatedFiles = helper.fetch(
sources = false,
javadoc = false,
subset = options.isolated.isolatedDeps.getOrElse(target, Seq.empty).toSet
subset = isolatedDeps.getOrElse(target, Seq.empty).toSet
)
if (options.common.verbosityLevel >= 2) {

View File

@ -58,6 +58,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)")
@Value("type")
@Short("a")
defaultArtifactType: String = "jar",
@Help("Maximum number of parallel downloads (default: 6)")
@Short("n")
parallel: Int = 6,
@ -145,13 +149,19 @@ case class IsolatedLoaderOptions(
t -> modVers
}
lazy val isolatedDeps = isolatedModuleVersions.map {
case (t, l) =>
t -> l.map {
case (mod, ver) =>
Dependency(mod, ver, configuration = "runtime")
}
}
def isolatedDeps(defaultArtifactType: String) =
isolatedModuleVersions.map {
case (t, l) =>
t -> l.map {
case (mod, ver) =>
Dependency(
mod,
ver,
configuration = "runtime",
attributes = Attributes(defaultArtifactType, "")
)
}
}
}

View File

@ -11,7 +11,7 @@ package object coursier {
version: String,
// Substituted by Resolver with its own default configuration (compile)
configuration: String = "",
attributes: Attributes = Attributes(),
attributes: Attributes = Attributes("jar"),
exclusions: Set[(String, String)] = Set.empty,
optional: Boolean = false,
transitive: Boolean = true

View File

@ -104,7 +104,7 @@ object CentralTests extends TestSuite {
)(
f: Artifact => T
): Future[T] = async {
val dep = Dependency(module, version, transitive = false)
val dep = Dependency(module, version, transitive = false, attributes = Attributes())
val res = await(resolve(Set(dep), extraRepo = extraRepo))
res.artifacts match {