mirror of https://github.com/sbt/sbt.git
Merge pull request #34 from alexarchambault/topic/coursier-1.1.0-M11
Switch to coursier 1.1.0-M11-1
This commit is contained in:
commit
145d9eeb44
|
|
@ -15,7 +15,7 @@ inThisBuild(List(
|
|||
)
|
||||
))
|
||||
|
||||
val coursierVersion = "1.1.0-M10"
|
||||
val coursierVersion = "1.1.0-M11-1"
|
||||
|
||||
lazy val `lm-coursier` = project
|
||||
.in(file("modules/lm-coursier"))
|
||||
|
|
|
|||
|
|
@ -1,23 +1,15 @@
|
|||
package coursier.lmcoursier
|
||||
|
||||
import java.io.File
|
||||
|
||||
import coursier.cache.CacheLogger
|
||||
import coursier.{Cache, CachePolicy}
|
||||
import coursier.core.{Classifier, Resolution}
|
||||
|
||||
import scala.concurrent.duration.Duration
|
||||
import coursier.params.CacheParams
|
||||
|
||||
final case class ArtifactsParams(
|
||||
classifiers: Option[Seq[Classifier]],
|
||||
res: Seq[Resolution],
|
||||
resolutions: Seq[Resolution],
|
||||
includeSignatures: Boolean,
|
||||
parallelDownloads: Int,
|
||||
createLogger: () => CacheLogger,
|
||||
cache: File,
|
||||
artifactsChecksums: Seq[Option[String]],
|
||||
ttl: Option[Duration],
|
||||
cachePolicies: Seq[CachePolicy],
|
||||
logger: CacheLogger,
|
||||
projectName: String,
|
||||
sbtClassifiers: Boolean
|
||||
sbtClassifiers: Boolean,
|
||||
cacheParams: CacheParams
|
||||
)
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ object ArtifactsRun {
|
|||
log: Logger
|
||||
): Either[ResolutionError.UnknownDownloadException, Map[Artifact, Either[FileError, File]]] = {
|
||||
|
||||
val allArtifacts0 = params.res.flatMap(_.dependencyArtifacts(params.classifiers)).map(_._3)
|
||||
val allArtifacts0 = params.resolutions.flatMap(_.dependencyArtifacts(params.classifiers)).map(_._3)
|
||||
|
||||
val allArtifacts =
|
||||
if (params.includeSignatures)
|
||||
|
|
@ -39,23 +39,18 @@ object ArtifactsRun {
|
|||
val printOptionalMessage = verbosityLevel >= 0 && verbosityLevel <= 1
|
||||
|
||||
val artifactFilesOrErrors = try {
|
||||
pool = Schedulable.fixedThreadPool(params.parallelDownloads)
|
||||
artifactsLogger = params.createLogger()
|
||||
pool = Schedulable.fixedThreadPool(params.cacheParams.parallel)
|
||||
|
||||
val artifactFileOrErrorTasks = allArtifacts.toVector.distinct.map { a =>
|
||||
def f(p: CachePolicy) =
|
||||
Cache.file[Task](
|
||||
a,
|
||||
params.cache,
|
||||
p,
|
||||
checksums = params.artifactsChecksums,
|
||||
logger = Some(artifactsLogger),
|
||||
pool = pool,
|
||||
ttl = params.ttl
|
||||
)
|
||||
|
||||
params.cachePolicies.tail
|
||||
.foldLeft(f(params.cachePolicies.head))(_ orElse f(_))
|
||||
Cache.file[Task](
|
||||
a,
|
||||
params.cacheParams.cacheLocation,
|
||||
params.cacheParams.cachePolicies,
|
||||
checksums = params.cacheParams.checksum,
|
||||
logger = Some(params.logger),
|
||||
pool = pool,
|
||||
ttl = params.cacheParams.ttl
|
||||
)
|
||||
.run
|
||||
.map((a, _))
|
||||
}
|
||||
|
|
@ -70,6 +65,7 @@ object ArtifactsRun {
|
|||
if (verbosityLevel >= 2)
|
||||
log.info(artifactInitialMessage)
|
||||
|
||||
artifactsLogger = params.logger
|
||||
artifactsLogger.init(if (printOptionalMessage) log.info(artifactInitialMessage))
|
||||
|
||||
Task.gather.gather(artifactFileOrErrorTasks).attempt.unsafeRun()(ExecutionContext.fromExecutorService(pool)) match {
|
||||
|
|
|
|||
|
|
@ -2,12 +2,13 @@ package coursier.lmcoursier
|
|||
|
||||
import java.io.{File, OutputStreamWriter}
|
||||
|
||||
import _root_.coursier.{Artifact, Cache, CachePolicy, FileError, Organization, Resolution, TermDisplay, organizationString}
|
||||
import _root_.coursier.{Artifact, CachePolicy, FileError, Organization, Resolution, TermDisplay, organizationString}
|
||||
import _root_.coursier.core.{Classifier, Configuration, ModuleName}
|
||||
import _root_.coursier.extra.Typelevel
|
||||
import _root_.coursier.ivy.IvyRepository
|
||||
import _root_.coursier.lmcoursier.Inputs.withAuthenticationByHost
|
||||
import coursier.cache.CacheDefaults
|
||||
import coursier.params.CacheParams
|
||||
import sbt.internal.librarymanagement.IvySbt
|
||||
import sbt.librarymanagement._
|
||||
import sbt.util.Logger
|
||||
|
|
@ -76,7 +77,7 @@ class CoursierDependencyResolution(conf: CoursierConfiguration) extends Dependen
|
|||
val verbosityLevel = 0
|
||||
|
||||
val ttl = CacheDefaults.ttl
|
||||
val createLogger = conf.createLogger.map(_.create).getOrElse { () =>
|
||||
val logger = conf.createLogger.map(_.create()).getOrElse {
|
||||
new TermDisplay(new OutputStreamWriter(System.err), fallbackMode = true)
|
||||
}
|
||||
val cache = conf.cache.getOrElse(CacheDefaults.location)
|
||||
|
|
@ -143,40 +144,44 @@ class CoursierDependencyResolution(conf: CoursierConfiguration) extends Dependen
|
|||
dependencies = dependencies,
|
||||
fallbackDependencies = conf.fallbackDependencies,
|
||||
configGraphs = configGraphs,
|
||||
autoScalaLib = conf.autoScalaLibrary,
|
||||
autoScalaLibOpt = if (conf.autoScalaLibrary) Some((so, sv)) else None,
|
||||
mainRepositories = mainRepositories,
|
||||
parentProjectCache = Map.empty,
|
||||
interProjectDependencies = conf.interProjectDependencies,
|
||||
internalRepositories = internalRepositories,
|
||||
userEnabledProfiles = conf.mavenProfiles.toSet,
|
||||
userForceVersions = Map.empty,
|
||||
typelevel = typelevel,
|
||||
so = so,
|
||||
sv = sv,
|
||||
sbtClassifiers = false,
|
||||
parallelDownloads = conf.parallelDownloads,
|
||||
projectName = projectName,
|
||||
maxIterations = conf.maxIterations,
|
||||
createLogger = createLogger,
|
||||
cache = cache,
|
||||
cachePolicies = cachePolicies,
|
||||
ttl = ttl,
|
||||
checksums = checksums
|
||||
logger = logger,
|
||||
cacheParams = coursier.params.CacheParams(
|
||||
cacheLocation = cache,
|
||||
cachePolicies = cachePolicies,
|
||||
ttl = ttl,
|
||||
checksum = checksums,
|
||||
parallel = conf.parallelDownloads
|
||||
),
|
||||
params = coursier.params.ResolutionParams(
|
||||
maxIterations = conf.maxIterations,
|
||||
profiles = conf.mavenProfiles.toSet,
|
||||
forceVersion = Map.empty
|
||||
)
|
||||
)
|
||||
|
||||
def artifactsParams(resolutions: Map[Set[Configuration], Resolution]) =
|
||||
ArtifactsParams(
|
||||
classifiers = classifiers,
|
||||
res = resolutions.values.toSeq,
|
||||
resolutions = resolutions.values.toSeq,
|
||||
includeSignatures = false,
|
||||
parallelDownloads = conf.parallelDownloads,
|
||||
createLogger = createLogger,
|
||||
cache = cache,
|
||||
artifactsChecksums = checksums,
|
||||
ttl = ttl,
|
||||
cachePolicies = cachePolicies,
|
||||
logger = logger,
|
||||
projectName = projectName,
|
||||
sbtClassifiers = false
|
||||
sbtClassifiers = false,
|
||||
cacheParams = CacheParams(
|
||||
parallel = conf.parallelDownloads,
|
||||
cacheLocation = cache,
|
||||
checksum = checksums,
|
||||
ttl = ttl,
|
||||
cachePolicies = cachePolicies
|
||||
)
|
||||
)
|
||||
|
||||
val sbtBootJarOverrides = SbtBootJars(
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
package coursier.lmcoursier
|
||||
|
||||
import coursier.Fetch
|
||||
import coursier.core._
|
||||
import coursier.util.{EitherT, Monad}
|
||||
|
||||
|
|
@ -13,7 +12,7 @@ final case class InterProjectRepository(projects: Seq[Project]) extends Reposito
|
|||
def find[F[_]](
|
||||
module: Module,
|
||||
version: String,
|
||||
fetch: Fetch.Content[F]
|
||||
fetch: Repository.Fetch[F]
|
||||
)(implicit
|
||||
F: Monad[F]
|
||||
): EitherT[F, String, (Artifact.Source, Project)] = {
|
||||
|
|
|
|||
|
|
@ -1,41 +1,31 @@
|
|||
package coursier.lmcoursier
|
||||
|
||||
import java.io.File
|
||||
import java.net.URL
|
||||
|
||||
import coursier.cache.CacheLogger
|
||||
import coursier.{Cache, CachePolicy, FallbackDependenciesRepository, ProjectCache, Resolution, moduleNameString}
|
||||
import coursier.{FallbackDependenciesRepository, ProjectCache, Resolution, moduleNameString}
|
||||
import coursier.core._
|
||||
import coursier.extra.Typelevel
|
||||
import coursier.ivy.PropertiesPattern
|
||||
import sbt.librarymanagement.{Resolver, URLRepository}
|
||||
|
||||
import scala.collection.mutable.ArrayBuffer
|
||||
import scala.concurrent.duration.Duration
|
||||
|
||||
final case class ResolutionParams(
|
||||
dependencies: Seq[(Configuration, Dependency)],
|
||||
fallbackDependencies: Seq[FallbackDependency],
|
||||
configGraphs: Seq[Set[Configuration]],
|
||||
autoScalaLib: Boolean,
|
||||
autoScalaLibOpt: Option[(Organization, String)],
|
||||
mainRepositories: Seq[Repository],
|
||||
parentProjectCache: ProjectCache,
|
||||
interProjectDependencies: Seq[Project],
|
||||
internalRepositories: Seq[Repository],
|
||||
userEnabledProfiles: Set[String],
|
||||
userForceVersions: Map[Module, String],
|
||||
typelevel: Boolean,
|
||||
so: Organization,
|
||||
sv: String,
|
||||
sbtClassifiers: Boolean,
|
||||
parallelDownloads: Int,
|
||||
projectName: String,
|
||||
maxIterations: Int,
|
||||
createLogger: () => CacheLogger,
|
||||
cache: File,
|
||||
cachePolicies: Seq[CachePolicy],
|
||||
ttl: Option[Duration],
|
||||
checksums: Seq[Option[String]]
|
||||
logger: CacheLogger,
|
||||
cacheParams: coursier.params.CacheParams,
|
||||
params: coursier.params.ResolutionParams
|
||||
) {
|
||||
|
||||
val fallbackDependenciesRepositories =
|
||||
|
|
@ -76,18 +66,20 @@ final case class ResolutionParams(
|
|||
.collect {
|
||||
case (config, dep) if configs(config) =>
|
||||
dep
|
||||
}
|
||||
.toSet,
|
||||
},
|
||||
filter = noOptionalFilter,
|
||||
userActivations =
|
||||
if (userEnabledProfiles.isEmpty)
|
||||
if (params.profiles.isEmpty)
|
||||
None
|
||||
else
|
||||
Some(userEnabledProfiles.iterator.map(_ -> true).toMap),
|
||||
Some(params.profiles.iterator.map(_ -> true).toMap),
|
||||
forceVersions =
|
||||
// order matters here
|
||||
userForceVersions ++
|
||||
(if (autoScalaLib && (configs(Configuration.compile) || configs(Configuration("scala-tool")))) forcedScalaModules(so, sv) else Map()) ++
|
||||
params.forceVersion ++
|
||||
autoScalaLibOpt
|
||||
.filter(_ => configs(Configuration.compile) || configs(Configuration("scala-tool")))
|
||||
.map { case (so, sv) => forcedScalaModules(so, sv) }
|
||||
.getOrElse(Map.empty) ++
|
||||
interProjectDependencies.map(_.moduleVersion),
|
||||
projectCache = parentProjectCache,
|
||||
mapDependencies = if (typelevel && (configs(Configuration.compile) || configs(Configuration("scala-tool")))) typelevelOrgSwap else None
|
||||
|
|
@ -98,7 +90,7 @@ final case class ResolutionParams(
|
|||
lazy val resolutionKey = SbtCoursierCache.ResolutionKey(
|
||||
dependencies,
|
||||
repositories,
|
||||
userEnabledProfiles,
|
||||
params.profiles,
|
||||
allStartRes,
|
||||
sbtClassifiers
|
||||
)
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ package coursier.lmcoursier
|
|||
import java.util.concurrent.ExecutorService
|
||||
|
||||
import coursier.cache.CacheLogger
|
||||
import coursier.{Cache, Fetch, Resolution}
|
||||
import coursier.{Cache, Resolution}
|
||||
import coursier.core._
|
||||
import coursier.ivy.IvyRepository
|
||||
import coursier.maven.MavenRepository
|
||||
|
|
@ -29,15 +29,14 @@ object ResolutionRun {
|
|||
val printOptionalMessage = verbosityLevel >= 0 && verbosityLevel <= 1
|
||||
|
||||
val resOrError: Either[ResolutionError, Resolution] = try {
|
||||
pool = Schedulable.fixedThreadPool(params.parallelDownloads)
|
||||
resLogger = params.createLogger()
|
||||
pool = Schedulable.fixedThreadPool(params.cacheParams.parallel)
|
||||
resLogger = params.logger
|
||||
|
||||
val fetch = Fetch.from(
|
||||
val fetchs = Cache.fetchs[Task](params.cacheParams.cacheLocation, params.cacheParams.cachePolicies, checksums = params.cacheParams.checksum, logger = Some(params.logger), pool = pool, ttl = params.cacheParams.ttl)
|
||||
|
||||
val fetch = ResolutionProcess.fetch(
|
||||
params.repositories,
|
||||
Cache.fetch[Task](params.cache, params.cachePolicies.head, checksums = params.checksums, logger = Some(resLogger), pool = pool, ttl = params.ttl),
|
||||
params.cachePolicies.tail.map(p =>
|
||||
Cache.fetch[Task](params.cache, p, checksums = params.checksums, logger = Some(resLogger), pool = pool, ttl = params.ttl)
|
||||
): _*
|
||||
fetchs.head, fetchs.tail: _*
|
||||
)
|
||||
|
||||
def depsRepr(deps: Seq[(Configuration, Dependency)]) =
|
||||
|
|
@ -81,11 +80,12 @@ object ResolutionRun {
|
|||
if (verbosityLevel >= 2)
|
||||
log.info(initialMessage)
|
||||
|
||||
resLogger = params.logger
|
||||
resLogger.init(if (printOptionalMessage) log.info(initialMessage))
|
||||
|
||||
startRes
|
||||
.process
|
||||
.run(fetch, params.maxIterations)
|
||||
.run(fetch, params.params.maxIterations)
|
||||
.attempt
|
||||
.unsafeRun()(ExecutionContext.fromExecutorService(pool))
|
||||
.left
|
||||
|
|
|
|||
|
|
@ -218,7 +218,7 @@ object ToSbt {
|
|||
|
||||
val configReports = configs.map {
|
||||
case (config, extends0) =>
|
||||
val configDeps = extends0.flatMap(configDependencies.getOrElse(_, Nil))
|
||||
val configDeps = extends0.toSeq.sortBy(_.value).flatMap(configDependencies.getOrElse(_, Nil))
|
||||
val subRes = resolutions(config).subset(configDeps)
|
||||
|
||||
val reports = ToSbt.moduleReports(
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ object UpdateRun {
|
|||
// Move back to coursier.util (in core module) after 1.0?
|
||||
private def allDependenciesByConfig(
|
||||
res: Map[Configuration, Resolution],
|
||||
depsByConfig: Map[Configuration, Set[Dependency]],
|
||||
depsByConfig: Map[Configuration, Seq[Dependency]],
|
||||
configs: Map[Configuration, Set[Configuration]]
|
||||
): Map[Configuration, Set[Dependency]] = {
|
||||
|
||||
|
|
@ -35,7 +35,7 @@ object UpdateRun {
|
|||
// Move back to coursier.util (in core module) after 1.0?
|
||||
private def dependenciesWithConfig(
|
||||
res: Map[Configuration, Resolution],
|
||||
depsByConfig: Map[Configuration, Set[Dependency]],
|
||||
depsByConfig: Map[Configuration, Seq[Dependency]],
|
||||
configs: Map[Configuration, Set[Configuration]]
|
||||
): Set[Dependency] =
|
||||
allDependenciesByConfig(res, depsByConfig, configs)
|
||||
|
|
@ -74,7 +74,7 @@ object UpdateRun {
|
|||
if (verbosityLevel >= 2) {
|
||||
val finalDeps = dependenciesWithConfig(
|
||||
configResolutions,
|
||||
depsByConfig.map { case (k, l) => k -> l.toSet },
|
||||
depsByConfig,
|
||||
params.configs
|
||||
)
|
||||
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ import java.io.File
|
|||
import coursier.{Artifact, FileError}
|
||||
import coursier.core._
|
||||
import coursier.lmcoursier._
|
||||
import coursier.params.CacheParams
|
||||
import coursier.sbtcoursier.Keys._
|
||||
import coursier.sbtcoursiershared.SbtCoursierShared.autoImport.{coursierCache, coursierCreateLogger}
|
||||
import sbt.Def
|
||||
|
|
@ -53,17 +54,19 @@ object ArtifactsTasks {
|
|||
val res = resTask.value
|
||||
|
||||
val params = ArtifactsParams(
|
||||
classifiers,
|
||||
res,
|
||||
includeSignatures,
|
||||
parallelDownloads,
|
||||
createLogger.create,
|
||||
cache,
|
||||
artifactsChecksums,
|
||||
ttl,
|
||||
cachePolicies,
|
||||
projectName,
|
||||
sbtClassifiers
|
||||
classifiers = classifiers,
|
||||
resolutions = res,
|
||||
includeSignatures = includeSignatures,
|
||||
logger = createLogger.create(),
|
||||
projectName = projectName,
|
||||
sbtClassifiers = sbtClassifiers,
|
||||
cacheParams = CacheParams(
|
||||
parallel = parallelDownloads,
|
||||
cacheLocation = cache,
|
||||
checksum = artifactsChecksums,
|
||||
ttl = ttl,
|
||||
cachePolicies = cachePolicies
|
||||
)
|
||||
)
|
||||
|
||||
val resOrError = ArtifactsRun.artifacts(
|
||||
|
|
|
|||
|
|
@ -4,7 +4,6 @@ import coursier.core._
|
|||
import coursier.lmcoursier._
|
||||
import coursier.sbtcoursier.Keys._
|
||||
import coursier.sbtcoursiershared.SbtCoursierShared.autoImport._
|
||||
import coursier.util.Print.Colors
|
||||
import coursier.util.{Parse, Print}
|
||||
import sbt.Def
|
||||
import sbt.Keys._
|
||||
|
|
@ -67,7 +66,7 @@ object DisplayTasks {
|
|||
(dep.module.organization, dep.module.name, dep.version)
|
||||
}
|
||||
|
||||
val subRes = res.subset(dependencies0.toSet)
|
||||
val subRes = res.subset(dependencies0)
|
||||
|
||||
ResolutionResult(subGraphConfigs, subRes, dependencies0)
|
||||
}
|
||||
|
|
@ -87,8 +86,8 @@ object DisplayTasks {
|
|||
println(
|
||||
s"$projectName (configurations ${subGraphConfigs.toVector.sorted.mkString(", ")})" + "\n" +
|
||||
Print.dependencyTree(
|
||||
dependencies,
|
||||
resolution,
|
||||
dependencies,
|
||||
printExclusions = true,
|
||||
inverse,
|
||||
colors = !sys.props.get("sbt.log.noformat").toSeq.contains("true")
|
||||
|
|
@ -112,10 +111,19 @@ object DisplayTasks {
|
|||
val resolutions = coursierResolutionTask(sbtClassifiers, ignoreArtifactErrors).value
|
||||
val result = new mutable.StringBuilder
|
||||
for (ResolutionResult(subGraphConfigs, resolution, _) <- resolutions) {
|
||||
val roots: Seq[Dependency] = resolution.transitiveDependencies.filter(f => f.module == module)
|
||||
val roots = resolution
|
||||
.minDependencies
|
||||
.filter(f => f.module == module)
|
||||
.toVector
|
||||
.sortBy(_.toString) // elements already have the same module, there's not much left for sorting…
|
||||
val strToPrint = s"$projectName (configurations ${subGraphConfigs.toVector.sorted.map(_.value).mkString(", ")})" + "\n" +
|
||||
Print.reverseTree(roots, resolution, withExclusions = true)
|
||||
.render(_.repr(Colors.get(!sys.props.get("sbt.log.noformat").toSeq.contains("true"))))
|
||||
Print.dependencyTree(
|
||||
resolution,
|
||||
roots,
|
||||
printExclusions = true,
|
||||
reverse = true,
|
||||
colors = !sys.props.get("sbt.log.noformat").toSeq.contains("true")
|
||||
)
|
||||
println(strToPrint)
|
||||
result.append(strToPrint)
|
||||
result.append("\n")
|
||||
|
|
|
|||
|
|
@ -123,28 +123,30 @@ object ResolutionTasks {
|
|||
|
||||
val resOrError = ResolutionRun.resolutions(
|
||||
ResolutionParams(
|
||||
currentProject.dependencies,
|
||||
fallbackDependencies,
|
||||
configGraphs,
|
||||
autoScalaLib,
|
||||
mainRepositories,
|
||||
parentProjectCache,
|
||||
interProjectDependencies,
|
||||
internalRepositories,
|
||||
userEnabledProfiles,
|
||||
userForceVersions,
|
||||
typelevel,
|
||||
so,
|
||||
sv,
|
||||
sbtClassifiers,
|
||||
parallelDownloads,
|
||||
projectName,
|
||||
maxIterations,
|
||||
createLogger.create,
|
||||
cache,
|
||||
cachePolicies,
|
||||
ttl,
|
||||
checksums
|
||||
dependencies = currentProject.dependencies,
|
||||
fallbackDependencies = fallbackDependencies,
|
||||
configGraphs = configGraphs,
|
||||
autoScalaLibOpt = if (autoScalaLib) Some((so, sv)) else None,
|
||||
mainRepositories = mainRepositories,
|
||||
parentProjectCache = parentProjectCache,
|
||||
interProjectDependencies = interProjectDependencies,
|
||||
internalRepositories = internalRepositories,
|
||||
typelevel = typelevel,
|
||||
sbtClassifiers = sbtClassifiers,
|
||||
projectName = projectName,
|
||||
logger = createLogger.create(),
|
||||
cacheParams = coursier.params.CacheParams(
|
||||
cacheLocation = cache,
|
||||
cachePolicies = cachePolicies,
|
||||
ttl = ttl,
|
||||
checksum = checksums,
|
||||
parallel = parallelDownloads
|
||||
),
|
||||
params = coursier.params.ResolutionParams(
|
||||
maxIterations = maxIterations,
|
||||
profiles = userEnabledProfiles,
|
||||
forceVersion = userForceVersions
|
||||
)
|
||||
),
|
||||
verbosityLevel,
|
||||
log
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
scalaVersion := "2.11.8"
|
||||
|
||||
libraryDependencies += "org.apache.zookeeper" % "zookeeper" % "3.5.0-alpha"
|
||||
libraryDependencies += {
|
||||
sys.props("sbt.log.noformat") = "true" // disables colors in coursierWhatDependsOn output
|
||||
"org.apache.zookeeper" % "zookeeper" % "3.5.0-alpha"
|
||||
}
|
||||
|
||||
lazy val whatDependsOnCheck = TaskKey[Unit]("whatDependsOnCheck")
|
||||
|
||||
|
|
|
|||
|
|
@ -1,9 +1,5 @@
|
|||
dependency-graph (configurations compile, compile-internal, optional, provided, runtime, runtime-internal, test, test-internal)
|
||||
├─ log4j:log4j:1.2.16
|
||||
│ ├─ org.apache.zookeeper:zookeeper:3.5.0-alpha [33mlog4j:log4j:1.2.16 -> 1.2.17[0m
|
||||
│ └─ org.slf4j:slf4j-log4j12:1.7.5
|
||||
│ └─ org.apache.zookeeper:zookeeper:3.5.0-alpha
|
||||
└─ log4j:log4j:1.2.17
|
||||
├─ org.apache.zookeeper:zookeeper:3.5.0-alpha [33mlog4j:log4j:1.2.16 -> 1.2.17[0m
|
||||
├─ org.apache.zookeeper:zookeeper:3.5.0-alpha log4j:log4j:1.2.16 -> 1.2.17
|
||||
└─ org.slf4j:slf4j-log4j12:1.7.5
|
||||
└─ org.apache.zookeeper:zookeeper:3.5.0-alpha
|
||||
|
|
|
|||
|
|
@ -65,16 +65,16 @@ object Shading {
|
|||
|
||||
def configDependencies(config: Configuration) = {
|
||||
|
||||
def minDependencies(dependencies: Set[Dependency]): Set[Dependency] =
|
||||
def minDependencies(dependencies: Seq[Dependency]): Seq[Dependency] =
|
||||
Orders.minDependencies(
|
||||
dependencies,
|
||||
dependencies.toSet,
|
||||
dep =>
|
||||
res
|
||||
.projectCache
|
||||
.get(dep)
|
||||
.map(_._2.configurations)
|
||||
.getOrElse(Map.empty)
|
||||
)
|
||||
).toSeq // sort so that this is deterministic?
|
||||
|
||||
val includedConfigs = configs.getOrElse(config, Set.empty) + config
|
||||
|
||||
|
|
@ -85,7 +85,6 @@ object Shading {
|
|||
case (cfg, dep) if includedConfigs(cfg) =>
|
||||
dep
|
||||
}
|
||||
.toSet
|
||||
)
|
||||
}
|
||||
|
||||
|
|
@ -105,7 +104,7 @@ object Shading {
|
|||
val compileDeps = configDependencies(baseConfig)
|
||||
val shadedDeps = configDependencies(shadedConf)
|
||||
|
||||
val compileOnlyDeps = compileDeps.filterNot(shadedDeps)
|
||||
val compileOnlyDeps = compileDeps.filterNot(shadedDeps.toSet)
|
||||
|
||||
log.debug(
|
||||
s"Found ${compileDeps.size} dependencies in $baseConfig\n" +
|
||||
|
|
@ -120,7 +119,7 @@ object Shading {
|
|||
shadedDeps.toVector.map(" " + _).sorted.mkString("\n")
|
||||
)
|
||||
|
||||
def files(deps: Set[Dependency]) = res
|
||||
def files(deps: Seq[Dependency]) = res
|
||||
.subset(deps)
|
||||
.dependencies
|
||||
.toSeq
|
||||
|
|
|
|||
Loading…
Reference in New Issue