Merge pull request #4323 from jastice/dont-warn-version-override

don't warn when current sbt version doesn't match version in build.properties
This commit is contained in:
eugene yokota 2018-08-16 16:05:17 -04:00 committed by GitHub
commit f8beb5fcce
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 14 additions and 5 deletions

View File

@ -801,21 +801,30 @@ object BuiltinCommands {
def checkSBTVersionChanged(state: State): Unit = {
import sbt.io.syntax._
val app = state.configuration.provider
val sbtVersionProperty = "sbt.version"
// Don't warn if current version has been set in system properties
val sbtVersionSystemOpt =
Option(System.getProperty(sbtVersionProperty))
// the intention is to warn if build.properties file has changed during current sbt session
// a `reload` will not respect this change while `reboot` will.
val buildProps = state.baseDir / "project" / "build.properties"
// First try reading the sbt version from build.properties file.
val sbtVersionOpt = if (buildProps.exists) {
val sbtVersionBuildOpt = if (buildProps.exists) {
val buildProperties = new Properties()
IO.load(buildProperties, buildProps)
Option(buildProperties.getProperty("sbt.version"))
Option(buildProperties.getProperty(sbtVersionProperty))
} else None
val sbtVersionOpt = sbtVersionSystemOpt.orElse(sbtVersionBuildOpt)
val app = state.configuration.provider
sbtVersionOpt.foreach(
version =>
if (version != app.id.version()) {
state.log.warn(s"""sbt version mismatch, current: ${app.id
.version()}, in build.properties: "$version", use 'reboot' to use the new value.""")
}
}
)
}