mirror of https://github.com/sbt/sbt.git
Better --intransitive option from the command-line tools
--intransitive accepts a dependency as argument, and adds it as intransitive dependency - other dependencies are left untouched
This commit is contained in:
parent
c5fb28f982
commit
baa9c17d20
|
|
@ -143,12 +143,20 @@ class Helper(
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
val (modVerCfgErrors, moduleVersionConfigs) = Parse.moduleVersionConfigs(rawDependencies)
|
val (modVerCfgErrors, moduleVersionConfigs) =
|
||||||
|
Parse.moduleVersionConfigs(rawDependencies)
|
||||||
|
val (intransitiveModVerCfgErrors, intransitiveModuleVersionConfigs) =
|
||||||
|
Parse.moduleVersionConfigs(intransitive)
|
||||||
|
|
||||||
prematureExitIf(modVerCfgErrors.nonEmpty) {
|
prematureExitIf(modVerCfgErrors.nonEmpty) {
|
||||||
s"Cannot parse dependencies:\n" + modVerCfgErrors.map(" "+_).mkString("\n")
|
s"Cannot parse dependencies:\n" + modVerCfgErrors.map(" "+_).mkString("\n")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
prematureExitIf(intransitiveModVerCfgErrors.nonEmpty) {
|
||||||
|
s"Cannot parse intransitive dependencies:\n" +
|
||||||
|
intransitiveModVerCfgErrors.map(" "+_).mkString("\n")
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
val (forceVersionErrors, forceVersions0) = Parse.moduleVersions(forceVersion)
|
val (forceVersionErrors, forceVersions0) = Parse.moduleVersions(forceVersion)
|
||||||
|
|
||||||
|
|
@ -217,17 +225,29 @@ class Helper(
|
||||||
(mod.organization, mod.name)
|
(mod.organization, mod.name)
|
||||||
}.toSet
|
}.toSet
|
||||||
|
|
||||||
val dependencies = moduleVersionConfigs.map {
|
val baseDependencies = moduleVersionConfigs.map {
|
||||||
|
case (module, version, configOpt) =>
|
||||||
|
Dependency(
|
||||||
|
module,
|
||||||
|
version,
|
||||||
|
configuration = configOpt.getOrElse(defaultConfiguration),
|
||||||
|
exclusions = excludes
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
val intransitiveDependencies = intransitiveModuleVersionConfigs.map {
|
||||||
case (module, version, configOpt) =>
|
case (module, version, configOpt) =>
|
||||||
Dependency(
|
Dependency(
|
||||||
module,
|
module,
|
||||||
version,
|
version,
|
||||||
configuration = configOpt.getOrElse(defaultConfiguration),
|
configuration = configOpt.getOrElse(defaultConfiguration),
|
||||||
exclusions = excludes,
|
exclusions = excludes,
|
||||||
transitive = !intransitive
|
transitive = false
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
val dependencies = baseDependencies ++ intransitiveDependencies
|
||||||
|
|
||||||
val checksums = {
|
val checksums = {
|
||||||
val splitChecksumArgs = checksum.flatMap(_.split(',')).filter(_.nonEmpty)
|
val splitChecksumArgs = checksum.flatMap(_.split(',')).filter(_.nonEmpty)
|
||||||
if (splitChecksumArgs.isEmpty)
|
if (splitChecksumArgs.isEmpty)
|
||||||
|
|
|
||||||
|
|
@ -44,8 +44,8 @@ case class CommonOptions(
|
||||||
@Value("organization:name")
|
@Value("organization:name")
|
||||||
@Short("E")
|
@Short("E")
|
||||||
exclude: List[String],
|
exclude: List[String],
|
||||||
@Help("Consider provided dependencies to be intransitive. Applies to all the provided dependencies.")
|
@Help("Add intransitive dependencies")
|
||||||
intransitive: Boolean,
|
intransitive: List[String],
|
||||||
@Help("Classifiers that should be fetched")
|
@Help("Classifiers that should be fetched")
|
||||||
@Value("classifier1,classifier2,...")
|
@Value("classifier1,classifier2,...")
|
||||||
@Short("C")
|
@Short("C")
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue