mirror of https://github.com/sbt/sbt.git
Add useJCenter setting, which is set to false. Fixes #2217
Adds a new setting `useJCenter`, which is set to `false` by default. When set to `true`, JCenter will be placed as the first external resolver to find library dependencies. The implementation of `externalResolvers` is changed to incorporate the setting by calling `Resolver.reorganizeAppResolvers`. These changes were required because `externalResolvers` uses whatever that's in the launchconfig, which the build user may not upgrade.
This commit is contained in:
parent
31e07492c7
commit
cd373c99ad
|
|
@ -1148,6 +1148,7 @@ object Classpaths {
|
||||||
moduleConfigurations :== Nil,
|
moduleConfigurations :== Nil,
|
||||||
publishTo :== None,
|
publishTo :== None,
|
||||||
resolvers :== Nil,
|
resolvers :== Nil,
|
||||||
|
useJCenter :== false,
|
||||||
retrievePattern :== Resolver.defaultRetrievePattern,
|
retrievePattern :== Resolver.defaultRetrievePattern,
|
||||||
transitiveClassifiers :== Seq(SourceClassifier, DocClassifier),
|
transitiveClassifiers :== Seq(SourceClassifier, DocClassifier),
|
||||||
sourceArtifactTypes :== Artifact.DefaultSourceTypes,
|
sourceArtifactTypes :== Artifact.DefaultSourceTypes,
|
||||||
|
|
@ -1174,10 +1175,10 @@ object Classpaths {
|
||||||
organizationHomepage <<= organizationHomepage or homepage,
|
organizationHomepage <<= organizationHomepage or homepage,
|
||||||
projectInfo <<= (name, description, homepage, startYear, licenses, organizationName, organizationHomepage, scmInfo, developers) apply ModuleInfo,
|
projectInfo <<= (name, description, homepage, startYear, licenses, organizationName, organizationHomepage, scmInfo, developers) apply ModuleInfo,
|
||||||
overrideBuildResolvers <<= appConfiguration(isOverrideRepositories),
|
overrideBuildResolvers <<= appConfiguration(isOverrideRepositories),
|
||||||
externalResolvers <<= (externalResolvers.task.?, resolvers, appResolvers) {
|
externalResolvers <<= (externalResolvers.task.?, resolvers, appResolvers, useJCenter) {
|
||||||
case (Some(delegated), Seq(), _) => delegated
|
case (Some(delegated), Seq(), _, _) => delegated
|
||||||
case (_, rs, Some(ars)) => task { ars ++ rs } // TODO - Do we need to filter out duplicates?
|
case (_, rs, Some(ars), uj) => task { ars ++ Resolver.reorganizeAppResolvers(rs, uj, true) }
|
||||||
case (_, rs, _) => task { Resolver.withDefaultResolvers(rs) }
|
case (_, rs, _, uj) => task { Resolver.withDefaultResolvers(rs, uj) }
|
||||||
},
|
},
|
||||||
appResolvers <<= appConfiguration apply appRepositories,
|
appResolvers <<= appConfiguration apply appRepositories,
|
||||||
bootResolvers <<= appConfiguration map bootRepositories,
|
bootResolvers <<= appConfiguration map bootRepositories,
|
||||||
|
|
|
||||||
|
|
@ -345,6 +345,7 @@ object Keys {
|
||||||
val projectResolver = TaskKey[Resolver]("project-resolver", "Resolver that handles inter-project dependencies.", DTask)
|
val projectResolver = TaskKey[Resolver]("project-resolver", "Resolver that handles inter-project dependencies.", DTask)
|
||||||
val fullResolvers = TaskKey[Seq[Resolver]]("full-resolvers", "Combines the project resolver, default resolvers, and user-defined resolvers.", CTask)
|
val fullResolvers = TaskKey[Seq[Resolver]]("full-resolvers", "Combines the project resolver, default resolvers, and user-defined resolvers.", CTask)
|
||||||
val otherResolvers = SettingKey[Seq[Resolver]]("other-resolvers", "Resolvers not included in the main resolver chain, such as those in module configurations.", CSetting)
|
val otherResolvers = SettingKey[Seq[Resolver]]("other-resolvers", "Resolvers not included in the main resolver chain, such as those in module configurations.", CSetting)
|
||||||
|
val useJCenter = SettingKey[Boolean]("use-jcenter", "Use JCenter as the default repository.", BSetting)
|
||||||
val moduleConfigurations = SettingKey[Seq[ModuleConfiguration]]("module-configurations", "Defines module configurations, which override resolvers on a per-module basis.", BMinusSetting)
|
val moduleConfigurations = SettingKey[Seq[ModuleConfiguration]]("module-configurations", "Defines module configurations, which override resolvers on a per-module basis.", BMinusSetting)
|
||||||
val retrievePattern = SettingKey[String]("retrieve-pattern", "Pattern used to retrieve managed dependencies to the current build.", DSetting)
|
val retrievePattern = SettingKey[String]("retrieve-pattern", "Pattern used to retrieve managed dependencies to the current build.", DSetting)
|
||||||
val retrieveConfiguration = SettingKey[Option[RetrieveConfiguration]]("retrieve-configuration", "Configures retrieving dependencies to the current build.", DSetting)
|
val retrieveConfiguration = SettingKey[Option[RetrieveConfiguration]]("retrieve-configuration", "Configures retrieving dependencies to the current build.", DSetting)
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,7 @@
|
||||||
|
|
||||||
|
[@eed3si9n]: https://github.com/eed3si9n
|
||||||
|
[2217]: https://github.com/sbt/sbt/issues/2217
|
||||||
|
|
||||||
|
### Fixes with compatibility implications
|
||||||
|
|
||||||
|
- sbt 0.13.10 adds a new setting `useJCenter`, which is set to `false` by default. When set to `true`, JCenter will be placed as the first external resolver to find library dependencies. [#2217][2217] by [@eed3si9n][@eed3si9n]
|
||||||
|
|
@ -0,0 +1,16 @@
|
||||||
|
lazy val check = taskKey[Unit]("")
|
||||||
|
lazy val check2 = taskKey[Unit]("")
|
||||||
|
|
||||||
|
lazy val root = (project in file(".")).
|
||||||
|
settings(
|
||||||
|
check := {
|
||||||
|
val fr = fullResolvers.value
|
||||||
|
assert(!(fr exists { _.name == "jcenter" }))
|
||||||
|
assert(fr exists { _.name == "public" })
|
||||||
|
},
|
||||||
|
check2 := {
|
||||||
|
val fr = fullResolvers.value
|
||||||
|
assert(fr exists { _.name == "jcenter" })
|
||||||
|
assert(fr exists { _.name == "public" })
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
@ -0,0 +1,5 @@
|
||||||
|
> check
|
||||||
|
|
||||||
|
> set useJCenter := true
|
||||||
|
|
||||||
|
> check2
|
||||||
Loading…
Reference in New Issue