diff --git a/build.sbt b/build.sbt
index 08e60bd78..8486bb71a 100644
--- a/build.sbt
+++ b/build.sbt
@@ -1,139 +1,13 @@
import java.io.FileOutputStream
-import com.typesafe.tools.mima.plugin.MimaPlugin.mimaDefaultSettings
-
val binaryCompatibilityVersion = "1.0.0-M7"
lazy val IntegrationTest = config("it") extend Test
-lazy val releaseSettings = Seq(
- publishMavenStyle := true,
- licenses := Seq("Apache 2.0" -> url("http://opensource.org/licenses/Apache-2.0")),
- homepage := Some(url("https://github.com/alexarchambault/coursier")),
- scmInfo := Some(ScmInfo(
- url("https://github.com/alexarchambault/coursier.git"),
- "scm:git:github.com/alexarchambault/coursier.git",
- Some("scm:git:git@github.com:alexarchambault/coursier.git")
- )),
- pomExtra := {
-
-
- alexarchambault
- Alexandre Archambault
- https://github.com/alexarchambault
-
-
- },
- publishTo := {
- val nexus = "https://oss.sonatype.org/"
- if (isSnapshot.value)
- Some("snapshots" at nexus + "content/repositories/snapshots")
- else
- Some("releases" at nexus + "service/local/staging/deploy/maven2")
- },
- credentials ++= {
- Seq("SONATYPE_USER", "SONATYPE_PASS").map(sys.env.get) match {
- case Seq(Some(user), Some(pass)) =>
- Seq(Credentials("Sonatype Nexus Repository Manager", "oss.sonatype.org", user, pass))
- case _ =>
- Seq()
- }
- }
-)
-
-lazy val noPublishSettings = Seq(
- publish := (),
- publishLocal := (),
- publishArtifact := false
-)
-
-def noPublishForScalaVersionSettings(sbv: String*) = Seq(
- publish := {
- if (sbv.contains(scalaBinaryVersion.value))
- ()
- else
- publish.value
- },
- publishLocal := {
- if (sbv.contains(scalaBinaryVersion.value))
- ()
- else
- publishLocal.value
- },
- publishArtifact := {
- if (sbv.contains(scalaBinaryVersion.value))
- false
- else
- publishArtifact.value
- }
-)
-
-lazy val scalaVersionAgnosticCommonSettings = Seq(
- organization := "io.get-coursier",
- resolvers ++= Seq(
- "Scalaz Bintray Repo" at "http://dl.bintray.com/scalaz/releases",
- Resolver.sonatypeRepo("releases")
- ),
- scalacOptions ++= {
- scalaBinaryVersion.value match {
- case "2.10" | "2.11" =>
- Seq("-target:jvm-1.6")
- case _ =>
- Seq()
- }
- },
- javacOptions ++= {
- scalaBinaryVersion.value match {
- case "2.10" | "2.11" =>
- Seq(
- "-source", "1.6",
- "-target", "1.6"
- )
- case _ =>
- Seq()
- }
- },
- javacOptions in Keys.doc := Seq()
-) ++ releaseSettings
-
-lazy val commonSettings = scalaVersionAgnosticCommonSettings ++ Seq(
- scalaVersion := "2.12.1",
- crossScalaVersions := Seq("2.12.1", "2.11.8", "2.10.6"),
- libraryDependencies ++= {
- if (scalaBinaryVersion.value == "2.10")
- Seq(compilerPlugin("org.scalamacros" % "paradise" % "2.1.0" cross CrossVersion.full))
- else
- Seq()
- }
-)
-
-lazy val pluginSettings =
- scalaVersionAgnosticCommonSettings ++
- noPublishForScalaVersionSettings("2.11", "2.12") ++
- ScriptedPlugin.scriptedSettings ++
- Seq(
- scriptedLaunchOpts ++= Seq(
- "-Xmx1024M",
- "-XX:MaxPermSize=256M",
- "-Dplugin.version=" + version.value,
- "-Dsbttest.base=" + (sourceDirectory.value / "sbt-test").getAbsolutePath
- ),
- scriptedBufferLog := false,
- sbtPlugin := (scalaBinaryVersion.value == "2.10"),
- resolvers ++= Seq(
- // added so that 2.10 artifacts of the other modules can be found by
- // the too-naive-for-now inter-project resolver of the coursier SBT plugin
- Resolver.sonatypeRepo("snapshots"),
- // added for sbt-scripted to be fine even with ++2.11.x
- Resolver.typesafeIvyRepo("releases")
- )
- )
-
-val scalazVersion = "7.2.7"
+lazy val scalazVersion = "7.2.7"
lazy val core = crossProject
- .settings(commonSettings: _*)
- .settings(mimaDefaultSettings: _*)
+ .settings(commonSettings)
.settings(
name := "coursier",
libraryDependencies ++= Seq(
@@ -282,10 +156,10 @@ lazy val `fetch-js` = project
lazy val tests = crossProject
.dependsOn(core)
- .settings(commonSettings: _*)
- .settings(noPublishSettings: _*)
+ .settings(commonSettings)
+ .settings(noPublishSettings)
.configs(IntegrationTest)
- .settings(Defaults.itSettings: _*)
+ .settings(Defaults.itSettings)
.settings(
name := "coursier-tests",
libraryDependencies += {
@@ -311,7 +185,6 @@ lazy val testsJs = tests.js.dependsOn(`fetch-js` % "test")
lazy val cache = project
.dependsOn(coreJvm)
.settings(commonSettings)
- .settings(mimaDefaultSettings)
.settings(
name := "coursier-cache",
libraryDependencies += "org.scalaz" %% "scalaz-concurrent" % scalazVersion,
@@ -620,10 +493,149 @@ lazy val okhttp = project
)
lazy val `coursier` = project.in(file("."))
- .aggregate(coreJvm, coreJs, `fetch-js`, testsJvm, testsJs, cache, bootstrap, cli, plugin, `sbt-shading`, web, doc, `http-server`, okhttp)
+ .aggregate(
+ coreJvm,
+ coreJs,
+ `fetch-js`,
+ testsJvm,
+ testsJs,
+ cache,
+ bootstrap,
+ cli,
+ plugin,
+ `sbt-shading`,
+ web,
+ doc,
+ `http-server`,
+ okhttp
+ )
.settings(commonSettings)
.settings(noPublishSettings)
.settings(releaseSettings)
.settings(
moduleName := "coursier-root"
)
+
+lazy val releaseSettings = Seq(
+ publishMavenStyle := true,
+ licenses := Seq("Apache 2.0" -> url("http://opensource.org/licenses/Apache-2.0")),
+ homepage := Some(url("https://github.com/alexarchambault/coursier")),
+ scmInfo := Some(ScmInfo(
+ url("https://github.com/alexarchambault/coursier.git"),
+ "scm:git:github.com/alexarchambault/coursier.git",
+ Some("scm:git:git@github.com:alexarchambault/coursier.git")
+ )),
+ pomExtra := {
+
+
+ alexarchambault
+ Alexandre Archambault
+ https://github.com/alexarchambault
+
+
+ },
+ publishTo := {
+ val nexus = "https://oss.sonatype.org/"
+ if (isSnapshot.value)
+ Some("snapshots" at nexus + "content/repositories/snapshots")
+ else
+ Some("releases" at nexus + "service/local/staging/deploy/maven2")
+ },
+ credentials ++= {
+ Seq("SONATYPE_USER", "SONATYPE_PASS").map(sys.env.get) match {
+ case Seq(Some(user), Some(pass)) =>
+ Seq(Credentials("Sonatype Nexus Repository Manager", "oss.sonatype.org", user, pass))
+ case _ =>
+ Seq()
+ }
+ }
+)
+
+lazy val noPublishSettings = Seq(
+ publish := (),
+ publishLocal := (),
+ publishArtifact := false
+)
+
+def noPublishForScalaVersionSettings(sbv: String*) = Seq(
+ publish := {
+ if (sbv.contains(scalaBinaryVersion.value))
+ ()
+ else
+ publish.value
+ },
+ publishLocal := {
+ if (sbv.contains(scalaBinaryVersion.value))
+ ()
+ else
+ publishLocal.value
+ },
+ publishArtifact := {
+ if (sbv.contains(scalaBinaryVersion.value))
+ false
+ else
+ publishArtifact.value
+ }
+)
+
+lazy val scalaVersionAgnosticCommonSettings = Seq(
+ organization := "io.get-coursier",
+ resolvers ++= Seq(
+ "Scalaz Bintray Repo" at "http://dl.bintray.com/scalaz/releases",
+ Resolver.sonatypeRepo("releases")
+ ),
+ scalacOptions ++= {
+ scalaBinaryVersion.value match {
+ case "2.10" | "2.11" =>
+ Seq("-target:jvm-1.6")
+ case _ =>
+ Seq()
+ }
+ },
+ javacOptions ++= {
+ scalaBinaryVersion.value match {
+ case "2.10" | "2.11" =>
+ Seq(
+ "-source", "1.6",
+ "-target", "1.6"
+ )
+ case _ =>
+ Seq()
+ }
+ },
+ javacOptions in Keys.doc := Seq()
+) ++ releaseSettings
+
+lazy val commonSettings = scalaVersionAgnosticCommonSettings ++ Seq(
+ scalaVersion := "2.12.1",
+ crossScalaVersions := Seq("2.12.1", "2.11.8", "2.10.6"),
+ libraryDependencies ++= {
+ if (scalaBinaryVersion.value == "2.10")
+ Seq(compilerPlugin("org.scalamacros" % "paradise" % "2.1.0" cross CrossVersion.full))
+ else
+ Seq()
+ }
+)
+
+lazy val pluginSettings =
+ scalaVersionAgnosticCommonSettings ++
+ noPublishForScalaVersionSettings("2.11", "2.12") ++
+ ScriptedPlugin.scriptedSettings ++
+ Seq(
+ scriptedLaunchOpts ++= Seq(
+ "-Xmx1024M",
+ "-XX:MaxPermSize=256M",
+ "-Dplugin.version=" + version.value,
+ "-Dsbttest.base=" + (sourceDirectory.value / "sbt-test").getAbsolutePath
+ ),
+ scriptedBufferLog := false,
+ sbtPlugin := (scalaBinaryVersion.value == "2.10"),
+ resolvers ++= Seq(
+ // added so that 2.10 artifacts of the other modules can be found by
+ // the too-naive-for-now inter-project resolver of the coursier SBT plugin
+ Resolver.sonatypeRepo("snapshots"),
+ // added for sbt-scripted to be fine even with ++2.11.x
+ Resolver.typesafeIvyRepo("releases")
+ )
+ )
+