66
77set -o pipefail
88
9- declare -r sbt_release_version=" 0.13.16 "
10- declare -r sbt_unreleased_version=" 0.13.16 "
9+ declare -r sbt_release_version=" 0.13.18 "
10+ declare -r sbt_unreleased_version=" 0.13.18 "
1111
12- declare -r latest_213=" 2.13.0-M2 "
13- declare -r latest_212=" 2.12.4 "
12+ declare -r latest_213=" 2.13.0-M5 "
13+ declare -r latest_212=" 2.12.8 "
1414declare -r latest_211=" 2.11.12"
1515declare -r latest_210=" 2.10.7"
1616declare -r latest_29=" 2.9.3"
@@ -23,7 +23,7 @@ declare -r sbt_launch_ivy_snapshot_repo="https://repo.scala-sbt.org/scalasbt/ivy
2323declare -r sbt_launch_mvn_release_repo=" http://repo.scala-sbt.org/scalasbt/maven-releases"
2424declare -r sbt_launch_mvn_snapshot_repo=" http://repo.scala-sbt.org/scalasbt/maven-snapshots"
2525
26- declare -r default_jvm_opts_common=" -Xms512m -Xmx1536m - Xss2m"
26+ declare -r default_jvm_opts_common=" -Xms512m -Xss2m"
2727declare -r noshare_opts=" -Dsbt.global.base=project/.sbtboot -Dsbt.boot.directory=project/.boot -Dsbt.ivy.home=project/.ivy"
2828
2929declare sbt_jar sbt_dir sbt_create sbt_version sbt_script sbt_new
@@ -98,21 +98,6 @@ build_props_sbt () {
9898 grep ' ^sbt\.version' " $buildProps " | tr ' =\r' ' ' | awk ' { print $2; }'
9999}
100100
101- update_build_props_sbt () {
102- local ver=" $1 "
103- local old=" $( build_props_sbt) "
104-
105- [[ -r " $buildProps " ]] && [[ " $ver " != " $old " ]] && {
106- perl -pi -e " s/^sbt\.version\b.*\$ /sbt.version=${ver} /" " $buildProps "
107- grep -q ' ^sbt.version[ =]' " $buildProps " || printf " \nsbt.version=%s\n" " $ver " >> " $buildProps "
108-
109- vlog " !!!"
110- vlog " !!! Updated file $buildProps setting sbt.version to: $ver "
111- vlog " !!! Previous value was: $old "
112- vlog " !!!"
113- }
114- }
115-
116101set_sbt_version () {
117102 sbt_version=" ${sbt_explicit_version:- $(build_props_sbt)} "
118103 [[ -n " $sbt_version " ]] || sbt_version=$sbt_release_version
@@ -173,7 +158,19 @@ setJavaHome () {
173158 export PATH=" $JAVA_HOME /bin:$PATH "
174159}
175160
176- getJavaVersion () { " $1 " -version 2>&1 | grep -E -e ' (java|openjdk) version' | awk ' { print $3 }' | tr -d \" ; }
161+ getJavaVersion () {
162+ local str=$( " $1 " -version 2>&1 | grep -E -e ' (java|openjdk) version' | awk ' { print $3 }' | tr -d ' "' )
163+
164+ # java -version on java8 says 1.8.x
165+ # but on 9 and 10 it's 9.x.y and 10.x.y.
166+ if [[ " $str " =~ ^1\. ([0-9]+)\. .* $ ]]; then
167+ echo " ${BASH_REMATCH[1]} "
168+ elif [[ " $str " =~ ^([0-9]+)\. .* $ ]]; then
169+ echo " ${BASH_REMATCH[1]} "
170+ elif [[ -n " $str " ]]; then
171+ echoerr " Can't parse java version from: $str "
172+ fi
173+ }
177174
178175checkJava () {
179176 # Warn if there is a Java version mismatch between PATH and JAVA_HOME/JDK_HOME
@@ -196,7 +193,7 @@ checkJava() {
196193java_version () {
197194 local version=$( getJavaVersion " $java_cmd " )
198195 vlog " Detected Java version: $version "
199- echo " ${ version: 2 : 1} "
196+ echo " $version "
200197}
201198
202199# MaxPermSize critical on pre-8 JVMs but incurs noisy warning on 8+
@@ -462,8 +459,7 @@ setTraceLevel() {
462459# set scalacOptions if we were given any -S opts
463460[[ ${# scalac_args[@]} -eq 0 ]] || addSbt " set scalacOptions in ThisBuild += \" ${scalac_args[@]} \" "
464461
465- # Update build.properties on disk to set explicit version - sbt gives us no choice
466- [[ -n " $sbt_explicit_version " && -z " $sbt_new " ]] && update_build_props_sbt " $sbt_explicit_version "
462+ [[ -n " $sbt_explicit_version " && -z " $sbt_new " ]] && addJava " -Dsbt.version=$sbt_explicit_version "
467463vlog " Detected sbt version $sbt_version "
468464
469465if [[ -n " $sbt_script " ]]; then
0 commit comments