1
1
import com .github .bigtoast .sbtthrift .ThriftPlugin
2
2
import sbt .ExclusionRule
3
- import com .typesafe .sbt .SbtGit .{ GitKeys => git }
3
+ import com .typesafe .sbt .SbtGit .GitKeys . _
4
4
5
- val specs2Ver = " 3.6.4 "
5
+ val specs2Ver = " 3.8.6 "
6
6
val parquetVer = " 1.8.1"
7
7
val hadoopVer = " 2.7.3"
8
- val sparkVer = " 2.0.0"
9
- val circeVersion = " 0.5.1"
8
+ val sparkVer = " 2.1.0"
9
+ val circeVersion = " 0.7.0"
10
+ val scalazVersion = " 7.2.9"
10
11
11
12
val pomInfo = (
12
13
<url >https:// github.com/ intenthq/ pucket</url >
@@ -29,11 +30,9 @@ val pomInfo = (
29
30
</developers >
30
31
)
31
32
32
- def excludeServlet (deps : Seq [ModuleID ]) = deps.map(_.exclude(" javax.servlet" , " servlet-api" ))
33
-
34
33
lazy val commonSettings = Seq (
35
34
organization := " com.intenthq.pucket" ,
36
- version := " 1.3 .0" ,
35
+ version := " 1.4 .0" ,
37
36
scalaVersion := " 2.11.8" ,
38
37
publishArtifact in Test := false ,
39
38
pomIncludeRepository := { _ => false },
@@ -47,21 +46,25 @@ lazy val commonSettings = Seq(
47
46
pomExtra := pomInfo,
48
47
resolvers += Opts .resolver.mavenLocalFile,
49
48
autoAPIMappings := true ,
50
- libraryDependencies ++= excludeServlet(Seq (
51
- " org.scalaz" %% " scalaz-core" % " 7.1.3" ,
52
- " org.mortbay.jetty" % " servlet-api" % " 3.0.20100224" % " provided" ,
53
- " org.apache.hadoop" % " hadoop-common" % hadoopVer % " provided" ,
54
- " org.apache.hadoop" % " hadoop-mapreduce-client-core" % hadoopVer % " provided" ,
55
- " org.apache.parquet" % " parquet-column" % parquetVer,
56
- " org.apache.parquet" % " parquet-hadoop" % parquetVer
57
- )),
58
49
libraryDependencies ++= Seq (
59
- " io.circe" %% " circe-core" ,
60
- " io.circe" %% " circe-generic" ,
61
- " io.circe" %% " circe-parser"
62
- ).map(_ % circeVersion),
63
- dependencyOverrides += " org.slf4j" % " slf4j-log4j12" % " 1.7.12" ,
64
- dependencyOverrides += " org.slf4j" % " slf4j-api" % " 1.7.12" ,
50
+ " org.apache.hadoop" % " hadoop-common" % hadoopVer % " provided,test" ,
51
+ " org.slf4j" % " slf4j-api" % " 1.7.24" % " test" ,
52
+ " org.slf4j" % " jcl-over-slf4j" % " 1.7.24" % " test" ,
53
+ " org.slf4j" % " jul-to-slf4j" % " 1.7.24" % " test" ,
54
+ " org.slf4j" % " log4j-over-slf4j" % " 1.7.24" % " test" ,
55
+ " ch.qos.logback" % " logback-classic" % " 1.2.1" % " test"
56
+ ),
57
+ excludeDependencies ++= Seq (
58
+ // Our logging strategy is to use Logback (logback-classic) which provides
59
+ // an SLF4J compatible API. We then import as many SLF4J bridges we can
60
+ // so that every logging library effectively works with our Logback based
61
+ // logging. Thus, anything outside of this needs to be excluded.
62
+ SbtExclusionRule (organization = " commons-logging" ),
63
+ SbtExclusionRule (organization = " log4j" , name = " log4j" ),
64
+ SbtExclusionRule (organization = " org.slf4j" , name = " slf4j-simple" ),
65
+ SbtExclusionRule (organization = " org.slf4j" , name = " slf4j-log4j12" ),
66
+ SbtExclusionRule (organization = " org.slf4j" , name = " slf4j-jdk14" )
67
+ ),
65
68
resolvers ++= Seq (
66
69
Resolver .typesafeRepo(" releases" ),
67
70
Resolver .sonatypeRepo(" public" ),
@@ -72,98 +75,79 @@ lazy val commonSettings = Seq(
72
75
)
73
76
)
74
77
75
-
76
78
lazy val core = (project in file(" core" )).
77
79
settings(commonSettings : _* ).
78
80
settings(
79
81
name := " pucket-core" ,
80
82
libraryDependencies ++= Seq (
81
- " org.apache.commons" % " commons-lang3" % " 3.4" ,
83
+ " org.scalaz" %% " scalaz-core" % scalazVersion,
84
+ " org.apache.commons" % " commons-lang3" % " 3.5" ,
85
+ " io.circe" %% " circe-core" % circeVersion,
86
+ " io.circe" %% " circe-generic" % circeVersion,
87
+ " io.circe" %% " circe-parser" % circeVersion,
88
+ " org.apache.parquet" % " parquet-hadoop" % parquetVer,
89
+
82
90
" org.specs2" %% " specs2-core" % specs2Ver % " test" ,
83
91
" org.specs2" %% " specs2-scalacheck" % specs2Ver % " test"
84
92
)
85
93
)
86
94
87
- lazy val test = (project in file(" test " )).
95
+ lazy val mapreduce = (project in file(" mapreduce " )).
88
96
settings(commonSettings : _* ).
89
97
settings(
90
- name := " pucket-test " ,
91
- libraryDependencies ++= excludeServlet( Seq (
92
- " org.slf4j " % " jul-to-slf4j " % " 1.7.12 " ,
93
- " org.specs2" %% " specs2-core" % specs2Ver,
94
- " org.specs2" %% " specs2-scalacheck" % specs2Ver,
95
- " org.typelevel " %% " scalaz-specs2 " % " 0.4.0 " ,
96
- " org.scalaz " %% " scalaz-scalacheck-binding " % " 7.1.3 " ,
97
- " org.apache.hadoop " % " hadoop-mapreduce-client-jobclient " % hadoopVer,
98
- " org.apache.hadoop " % " hadoop-common " % hadoopVer,
99
- " org.apache.hadoop " % " hadoop-mapreduce-client-core " % hadoopVer,
100
- " org.apache.spark " %% " spark-core " % sparkVer excludeAll (
101
- ExclusionRule (organization = " org.slf4j " ) ,
102
- ExclusionRule (organization = " log4j " ),
103
- ExclusionRule (organization = " org.scala-lang " ) ,
104
- ExclusionRule (organization = " javax.servlet " , name = " servlet-api " )
105
- )
106
- ))
107
- ).dependsOn(core, mapreduce, spark )
98
+ name := " pucket-mapreduce " ,
99
+ libraryDependencies ++= Seq (
100
+ " org.apache.hadoop " % " hadoop-mapreduce-client-jobclient " % hadoopVer % " provided,test " ,
101
+ " org.specs2" %% " specs2-core" % specs2Ver % " test " ,
102
+ " org.specs2" %% " specs2-scalacheck" % specs2Ver % " test "
103
+ )
104
+ ).dependsOn(core % " compile->compile;test->test " )
105
+
106
+ lazy val spark = (project in file( " spark " )).
107
+ settings( commonSettings : _* ).
108
+ settings (
109
+ name : = " pucket-spark " ,
110
+ libraryDependencies ++= Seq (
111
+ " org.apache.spark " %% " spark-core " % sparkVer % " provided,test " ,
112
+ " org.specs2 " %% " specs2-core " % specs2Ver % " test " ,
113
+ " org.typelevel " %% " scalaz-specs2 " % " 0.5.0 " % " test "
114
+ )
115
+ ).dependsOn(core % " compile->compile;test->test " , mapreduce % " compile->compile;test->test " )
108
116
109
117
lazy val thrift = (project in file(" thrift" )).
110
118
settings(ThriftPlugin .thriftSettings: _* ).
111
119
settings(commonSettings : _* ).
112
120
settings(
113
121
name := " pucket-thrift" ,
114
122
libraryDependencies ++= Seq (
115
- " org.apache.thrift" % " libthrift" % " 0.9.2 " ,
123
+ " org.apache.thrift" % " libthrift" % " 0.9.3 " ,
116
124
" org.apache.parquet" % " parquet-thrift" % parquetVer
117
125
)
118
- ).dependsOn(core, test % " test->compile " )
126
+ ).dependsOn(core % " compile->compile;test->test " , mapreduce % " test->test " , spark % " test->test " )
119
127
120
128
121
129
lazy val avro = (project in file(" avro" )).
122
- settings(sbtavro. SbtAvro .avroSettings : _* ).
130
+ enablePlugins( SbtAvro ).
123
131
settings(commonSettings : _* ).
124
132
settings(
125
133
name := " pucket-avro" ,
126
- libraryDependencies ++= excludeServlet( Seq (
134
+ libraryDependencies ++= Seq (
127
135
" org.apache.avro" % " avro" % " 1.7.7" ,
128
136
" org.apache.avro" % " avro-compiler" % " 1.7.7" ,
129
137
" org.apache.parquet" % " parquet-avro" % parquetVer,
130
- " com.twitter" %% " chill-avro" % " 0.7.0" % " test"
131
- ))
132
- ).dependsOn(core, test % " test->compile" )
133
-
134
-
135
- lazy val mapreduce = (project in file(" mapreduce" )).
136
- settings(commonSettings : _* ).
137
- settings(
138
- name := " pucket-mapreduce" ,
139
- libraryDependencies ++= excludeServlet(Seq (
140
- " org.apache.hadoop" % " hadoop-mapreduce-client-jobclient" % hadoopVer % " provided"
141
- ))
142
- ).dependsOn(core)
143
-
144
- lazy val spark = (project in file(" spark" )).
145
- settings(commonSettings : _* ).
146
- settings(
147
- name := " pucket-spark" ,
148
- libraryDependencies ++= excludeServlet(Seq (
149
- " org.apache.spark" %% " spark-core" % sparkVer % " provided" excludeAll(
150
- ExclusionRule (organization = " org.slf4j" ),
151
- ExclusionRule (organization = " log4j" ),
152
- ExclusionRule (organization = " org.scala-lang" ),
153
- ExclusionRule (organization = " org.scalatest" ),
154
- ExclusionRule (organization = " javax.servlet" , name = " servlet-api" )
155
- )
156
- ))
157
- ).dependsOn(core, mapreduce)
138
+ " com.twitter" %% " chill-avro" % " 0.8.4" % " test"
139
+ )
140
+ ).dependsOn(core % " compile->compile;test->test" , mapreduce % " test->test" , spark % " test->test" )
158
141
159
142
lazy val pucket = (project in file(" ." )).
160
143
settings(commonSettings : _* ).
161
- settings(unidocSettings : _* ).
162
- settings(site.settings ++ ghpages.settings: _* ).
144
+ enablePlugins(ScalaUnidocPlugin , GhpagesPlugin ).
163
145
settings(
164
146
name := " pucket" ,
165
147
publishArtifact := false ,
166
148
publishTo := Some (Resolver .file(" Unused transient repository" , file(" target/unusedrepo" ))),
167
- site.addMappingsToSiteDir(mappings in (ScalaUnidoc , packageDoc), " latest/api" ),
168
- git.gitRemoteRepo
:= " [email protected] :intenthq/pucket.git"
169
- ).aggregate(core, test, thrift, avro, mapreduce, spark)
149
+ gitRemoteRepo
:= " [email protected] :intenthq/pucket.git" ,
150
+ siteSubdirName in ScalaUnidoc := " latest/api" ,
151
+ addMappingsToSiteDir(mappings in (ScalaUnidoc , packageDoc), siteSubdirName in ScalaUnidoc ),
152
+ ghpagesNoJekyll := true
153
+ ).aggregate(core, thrift, avro, mapreduce, spark)
0 commit comments