11import sbt ._
2- import Multiversion .sparkVersion
32import com .typesafe .sbt .SbtNativePackager .autoImport .NativePackagerHelper ._
4- import sbt .Keys .{scalaVersion , test }
5- import sbtassembly .AssemblyPlugin .autoImport .{assemblyExcludedJars , assemblyOption }
3+ import sbt .Keys .scalaVersion
64
7- lazy val commonSettings = Seq (
8- version := " 1.2.1"
9- )
10-
11- sparkVersion := " 2.4.0" // default spark version
5+ ThisBuild / organization := " it.agilelab"
6+ ThisBuild / version := " 1.3.0-SNAPSHOT"
127
138scalacOptions ++= Seq (
149 " -target:jvm-1.8" ,
@@ -30,21 +25,6 @@ resolvers ++= Seq(
3025 " Cloudera" at " https://repository.cloudera.com/artifactory/cloudera-repos/"
3126)
3227
33- def calcVersionScala (sparkVersion : String ): String = {
34- sparkVersion.head match {
35- case '1' => " 2.10.6"
36- case '2' => " 2.11.11"
37- case _ => throw new Exception (" This Spark version is not supported" )
38- }
39- }
40-
41- /*
42- MODULE: "DQ_ROOT"
43- */
44- lazy val root = (project in file(" ." )).settings(
45- name := " DataQuality-framework"
46- ).aggregate(core, common)
47-
4828/*
4929 MODULE: "DQ_COMMON"
5030 */
@@ -55,23 +35,24 @@ lazy val common =
5535/*
5636 MODULE: "DQ_CORE"
5737 */
38+
5839lazy val core = (project in file(" dq-core" ))
5940 .enablePlugins(UniversalPlugin , UniversalDeployPlugin )
6041 .settings(
61- sparkVersion := sparkVersion.all(ScopeFilter (inProjects(ProjectRef (file(" ." ), " root" )))).value.head,
62- scalaVersion := calcVersionScala(sparkVersion.value),
63- commonSettings,
64- libraryDependencies ++= {
65- // val sv = sparkVersion.all(ScopeFilter(inProjects(ProjectRef(file("."), "root")))).value.head
66- Dependencies .dq_core ++ Dependencies .sparkDependenciesCalculation(sparkVersion.value)
42+ libraryDependencies ++= {
43+ Dependencies .dq_core ++ Dependencies .getSparkDependencies(sparkVersion.value)
6744 },
68- unmanagedResourceDirectories in Compile += baseDirectory(_ / " src/main/resources" ).value,
69- excludeFilter in Compile in unmanagedResources := " *" ,
70- unmanagedJars in Compile += file(" dq-core/lib/ojdbc7.jar" ),
71- assemblyExcludedJars in assembly := (fullClasspath in assembly).value.filter(_.data.getName startsWith " spark-assembly" ),
72- assemblyOption in assembly := (assemblyOption in assembly).value.copy(includeScala = true ),
73- test in assembly := {},
74- assemblyMergeStrategy in assembly := {
45+ Compile / unmanagedResourceDirectories += baseDirectory(_ / " src/main/resources" ).value,
46+ Compile / unmanagedJars += file(" dq-core/lib/ojdbc7.jar" ),
47+
48+ run in Compile := Defaults .runTask(fullClasspath in Compile , mainClass in (Compile , run), runner in (Compile , run)).evaluated,
49+ runMain in Compile := Defaults .runMainTask(fullClasspath in Compile , runner in(Compile , run)).evaluated,
50+ parallelExecution in Test := false ,
51+ assembly / assemblyJarName := s " dq- ${name.value}_ ${sparkVersion.value}_ ${scalaVersion.value}- ${version.value}.jar " ,
52+ assembly / test := {},
53+ assembly / assemblyMergeStrategy := {
54+ case PathList (" org" ," aopalliance" , xs @ _* ) => MergeStrategy .last
55+ case PathList (" javax" , " inject" , xs @ _* ) => MergeStrategy .last
7556 case PathList (" javax" , " servlet" , xs @ _* ) => MergeStrategy .last
7657 case PathList (" javax" , " activation" , xs @ _* ) => MergeStrategy .last
7758 case PathList (" org" , " apache" , xs @ _* ) => MergeStrategy .last
@@ -89,7 +70,8 @@ lazy val core = (project in file("dq-core"))
8970 val oldStrategy = (assemblyMergeStrategy in assembly).value
9071 oldStrategy(x)
9172 },
92- mappings in Universal += {
73+
74+ Universal / mappings += {
9375 val confFile = buildEnv.value match {
9476 case BuildEnv .Stage => " conf/qa.conf"
9577 case BuildEnv .Test => " conf/test.conf"
@@ -98,17 +80,14 @@ lazy val core = (project in file("dq-core"))
9880 }
9981 ((resourceDirectory in Compile ).value / confFile) -> " conf/application.conf"
10082 },
101- mappings in Universal ++= {
83+ Universal / mappings ++= {
10284 val integrationFolder = integrationEnv.value match {
10385 case _ => " integration/dev"
10486 }
10587 directory((resourceDirectory in Compile ).value / integrationFolder / " bin" ) ++
10688 directory((resourceDirectory in Compile ).value / integrationFolder / " conf" )
10789 },
108- mappings in Universal <+= (assembly in Compile ) map { jar =>
109- jar -> (" lib/" + jar.getName)
110- },
111- assemblyJarName in assembly := s " dq-core_ ${sparkVersion.value}_ ${scalaVersion.value}.jar "
90+ Universal / mappings += (assembly in Compile ).map(jar => jar -> (" lib/" + jar.getName)).value
11291 )
11392
11493/*
@@ -117,90 +96,29 @@ lazy val core = (project in file("dq-core"))
11796lazy val ui = (project in file(" dq-ui" ))
11897 .enablePlugins(PlayScala )
11998 .settings(
120- inThisBuild(
121- commonSettings ++ List (scalaVersion := " 2.11.12" )
122- ),
123- incOptions := incOptions.value.withNameHashing(true ),
99+ scalaVersion := " 2.11.12" ,
124100 updateOptions := updateOptions.value.withCachedResolution(cachedResoluton = true ),
125101 // we use nodejs to make our typescript build as fast as possible
126102 JsEngineKeys .engineType := JsEngineKeys .EngineType .Node ,
127103 libraryDependencies ++= {
128- val ngVersion = " 4.4.4"
129- Seq (
130- jdbc, cache, ws, specs2% Test , evolutions, guice,
131- " com.typesafe.play" %% " play-json" % " 2.5.14" ,
132- " org.scalatestplus.play" %% " scalatestplus-play" % " 2.0.0" % " test" ,
133- " joda-time" % " joda-time" % " 2.9.9" ,
134- " org.joda" % " joda-convert" % " 1.9.2" ,
135- " org.squeryl" %% " squeryl" % " 0.9.9" ,
136- " com.gilt" % " jerkson_2.11" % " 0.6.9" ,
137- " org.webjars" %% " webjars-play" % " 2.7.3" ,
138- " org.postgresql" % " postgresql" % " 42.1.1" ,
139- " org.typelevel" %% " cats-core" % " 1.1.0" ,
140-
141- // angular2 dependencies
142- " org.webjars.npm" % " angular__common" % ngVersion,
143- " org.webjars.npm" % " angular__compiler" % ngVersion,
144- " org.webjars.npm" % " angular__core" % ngVersion,
145- " org.webjars.npm" % " angular__http" % ngVersion,
146- " org.webjars.npm" % " angular__forms" % ngVersion,
147- " org.webjars.npm" % " angular__router" % ngVersion,
148- " org.webjars.npm" % " angular__platform-browser-dynamic" % ngVersion,
149- " org.webjars.npm" % " angular__platform-browser" % ngVersion,
150- " org.webjars.npm" % " angular__cdk" % " 2.0.0-beta.10" ,
151- " org.webjars.npm" % " angular__material" % " 2.0.0-beta.10" ,
152- " org.webjars.npm" % " angular__animations" % ngVersion,
153- " org.webjars.npm" % " systemjs" % " 0.20.14" ,
154- " org.webjars.npm" % " rxjs" % " 5.4.2" ,
155- " org.webjars.npm" % " reflect-metadata" % " 0.1.8" ,
156- " org.webjars.npm" % " zone.js" % " 0.8.4" ,
157- " org.webjars.npm" % " core-js" % " 2.4.1" ,
158- " org.webjars.npm" % " symbol-observable" % " 1.0.1" ,
159-
160- " org.webjars.npm" % " angular__flex-layout" % " 2.0.0-beta.9" ,
161-
162- " org.webjars.npm" % " typescript" % " 2.4.1" ,
163- " org.webjars.npm" % " codemirror" % " 5.30.0" ,
164- " org.webjars.npm" % " ng2-codemirror" % " 1.1.3" ,
165-
166- // tslint dependency
167- " org.webjars.npm" % " types__jasmine" % " 2.5.53" % " test" ,
168- // test
169- " org.webjars.npm" % " jasmine-core" % " 2.6.4" ,
170- " org.webjars.npm" % " ng2-file-upload" % " 1.2.0" ,
171- " org.webjars.npm" % " file-saver" % " 1.3.8" ,
172- " org.webjars.npm" % " types__file-saver" % " 1.3.0"
173- )
104+ Seq (jdbc, cache, ws, specs2 % Test , evolutions, guice) ++ Dependencies .dq_ui ++ Dependencies .getJSDependencies(" 4.4.4" )
174105 },
175106 dependencyOverrides += " org.webjars.npm" % " minimatch" % " 3.0.0" ,
176107 // use the webjars npm directory (target/web/node_modules ) for resolution of module imports of angular2/core etc
177108 resolveFromWebjarsNodeModulesDir := true ,
178109 // compile our tests as commonjs instead of systemjs modules
179- (projectTestFile in typescript) := Some (" tsconfig.test.json" )
110+ typescript / projectTestFile := Some (" tsconfig.test.json" )
180111 ).dependsOn(common)
181112
182113/*
183114 MODULE: "DQ_API"
184115 */
185116lazy val api = (project in file(" dq-api" ))
186117 .settings(
187- inThisBuild(
188- commonSettings ++ List (scalaVersion := " 2.11.12" )
189- ),
190- incOptions := incOptions.value.withNameHashing(true ),
118+ scalaVersion := " 2.11.12" ,
191119 updateOptions := updateOptions.value.withCachedResolution(cachedResoluton = true ),
192120 libraryDependencies ++= {
193- val ngVersion = " 4.4.4"
194- Seq (
195- jdbc, cache, ws, specs2% Test , evolutions, guice,
196- " com.typesafe.play" %% " play-json" % " 2.5.14" ,
197- " org.squeryl" %% " squeryl" % " 0.9.9" ,
198- " org.postgresql" % " postgresql" % " 42.1.1" ,
199- " com.gilt" % " jerkson_2.11" % " 0.6.9" ,
200- " org.webjars" % " swagger-ui" % " 3.1.5" ,
201- " org.scalatest" %% " scalatest" % " 3.0.4" % Test ,
202- " org.scalatestplus.play" %% " scalatestplus-play" % " 3.1.2" % Test
203- )
121+ Seq (jdbc, cache, ws, specs2 % Test , evolutions, guice) ++ Dependencies .dq_api
204122 }
205123 )
206124
@@ -210,22 +128,9 @@ lazy val api = (project in file("dq-api"))
210128lazy val be = (project in file(" dq-be" ))
211129 .enablePlugins(PlayScala )
212130 .settings(
213- inThisBuild(
214- commonSettings ++ List (scalaVersion := " 2.11.12" )
215- ),
216- incOptions := incOptions.value.withNameHashing(true ),
131+ scalaVersion := " 2.11.12" ,
217132 updateOptions := updateOptions.value.withCachedResolution(cachedResoluton = true ),
218133 libraryDependencies ++= {
219- val ngVersion = " 4.4.4"
220- Seq (
221- jdbc, cache, ws, specs2% Test , evolutions, guice,
222- " com.typesafe.play" %% " play-json" % " 2.5.14" ,
223- " org.squeryl" %% " squeryl" % " 0.9.9" ,
224- " org.postgresql" % " postgresql" % " 42.1.1" ,
225- " com.gilt" % " jerkson_2.11" % " 0.6.9" ,
226- " org.webjars" % " swagger-ui" % " 3.1.5" ,
227- " org.scalatest" %% " scalatest" % " 3.0.4" % Test ,
228- " org.scalatestplus.play" %% " scalatestplus-play" % " 3.1.2" % Test
229- )
134+ Seq (jdbc, cache, ws, specs2 % Test , evolutions, guice) ++ Dependencies .dq_be
230135 }
231136 ).dependsOn(api,common)
0 commit comments