From bf3343187b5e799787f2ae2fa2a729a12167239e Mon Sep 17 00:00:00 2001 From: Jakob Odersky Date: Thu, 2 Aug 2018 13:47:47 -0700 Subject: Rename plugins to include a -Plugin suffix --- src/main/scala/xyz.driver.sbt/LibraryPlugin.scala | 53 +++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 src/main/scala/xyz.driver.sbt/LibraryPlugin.scala (limited to 'src/main/scala/xyz.driver.sbt/LibraryPlugin.scala') diff --git a/src/main/scala/xyz.driver.sbt/LibraryPlugin.scala b/src/main/scala/xyz.driver.sbt/LibraryPlugin.scala new file mode 100644 index 0000000..501f2fb --- /dev/null +++ b/src/main/scala/xyz.driver.sbt/LibraryPlugin.scala @@ -0,0 +1,53 @@ +package xyz.driver.sbt + +import com.typesafe.sbt.GitPlugin +import com.typesafe.sbt.SbtGit.git +import java.time.Instant +import sbt.Keys._ +import sbt._ +import sbt.plugins.JvmPlugin + +/** Common settings for a library, Driver style. */ +object LibraryPlugin extends AutoPlugin { + + override def requires = JvmPlugin + + lazy val repositorySettings: Seq[Setting[_]] = Seq( + resolvers += "releases" at "https://drivergrp.jfrog.io/drivergrp/releases", + resolvers += "snapshots" at "https://drivergrp.jfrog.io/drivergrp/snapshots" + ) + + lazy val publicationSettings: Seq[Setting[_]] = Seq( + organization := "xyz.driver", + publishTo := { + val jfrog = "https://drivergrp.jfrog.io/drivergrp/" + if (isSnapshot.value) Some("snapshots" at jfrog + "snapshots;build.timestamp=" + Instant.now().toEpochMilli) + else Some("releases" at jfrog + "releases") + }, + skip in publish := false + ) + + // Get version from git unless a VERSION environment variable is set + lazy val versionSettings: Seq[Setting[_]] = sys.env.get("VERSION") match { + case None => + GitPlugin.autoImport.versionWithGit ++ Seq( + git.useGitDescribe := true, // get version from git + git.baseVersion := "0.0.0" // this version is used for new projects without any commits + ) + case Some(v) => + Seq( + version := v + ) + } + + override def buildSettings: Seq[sbt.Setting[_]] = versionSettings ++ Seq( + skip in publish := true + ) + + override def projectSettings: Seq[Def.Setting[_]] = repositorySettings ++ publicationSettings ++ Seq( + javacOptions ++= Seq("-target", "1.8"), + crossScalaVersions := List("2.12.6"), + scalaVersion := crossScalaVersions.value.last + ) + +} -- cgit v1.2.3