aboutsummaryrefslogtreecommitdiff
path: root/examples/build-info-example
diff options
context:
space:
mode:
Diffstat (limited to 'examples/build-info-example')
-rw-r--r--examples/build-info-example/BuildInfo.scala8
-rw-r--r--examples/build-info-example/Main.scala9
-rw-r--r--examples/build-info-example/Readme.md3
-rw-r--r--examples/build-info-example/build/build.scala27
4 files changed, 47 insertions, 0 deletions
diff --git a/examples/build-info-example/BuildInfo.scala b/examples/build-info-example/BuildInfo.scala
new file mode 100644
index 0000000..ac0e680
--- /dev/null
+++ b/examples/build-info-example/BuildInfo.scala
@@ -0,0 +1,8 @@
+// generated file
+import java.io._
+object BuildInfo{
+def artifactId = "build-info-example"
+def groupId = "cbt.examples"
+def version = "0.1"
+def scalaVersion = "2.11.8"
+}
diff --git a/examples/build-info-example/Main.scala b/examples/build-info-example/Main.scala
new file mode 100644
index 0000000..cb4ad75
--- /dev/null
+++ b/examples/build-info-example/Main.scala
@@ -0,0 +1,9 @@
+object Main{
+ def main(args: Array[String]): Unit = {
+ import BuildInfo._
+ println("scalaVersion: "+scalaVersion)
+ println("groupId: "+groupId)
+ println("artifactId: "+artifactId)
+ println("version: "+version)
+ }
+} \ No newline at end of file
diff --git a/examples/build-info-example/Readme.md b/examples/build-info-example/Readme.md
new file mode 100644
index 0000000..acbb84e
--- /dev/null
+++ b/examples/build-info-example/Readme.md
@@ -0,0 +1,3 @@
+This is an example how to propagate build-time information
+such as version or scalaVersion to runtime.
+The advantage of the approach taken here is simplicity.
diff --git a/examples/build-info-example/build/build.scala b/examples/build-info-example/build/build.scala
new file mode 100644
index 0000000..f6fc7a4
--- /dev/null
+++ b/examples/build-info-example/build/build.scala
@@ -0,0 +1,27 @@
+import cbt._
+import java.nio.file.Files._
+
+class Build(val context: Context) extends PackageJars{
+ def name = "build-info-example"
+ def groupId = "cbt.examples"
+ def defaultVersion = "0.1"
+ override def defaultScalaVersion = "2.11.8"
+ override def compile = {
+ val file = (projectDirectory ++ "/BuildInfo.scala").toPath
+ val contents = s"""// generated file
+import java.io._
+object BuildInfo{
+def artifactId = "$artifactId"
+def groupId = "$groupId"
+def version = "$version"
+def scalaVersion = "$scalaVersion"
+}
+"""
+ if( exists(file) && contents != new String(readAllBytes(file)) )
+ write(
+ (projectDirectory ++ "/BuildInfo.scala").toPath,
+ contents.getBytes
+ )
+ super.compile
+ }
+}