-
Notifications
You must be signed in to change notification settings - Fork 4
/
build.sbt
116 lines (98 loc) · 3.11 KB
/
build.sbt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
import com.typesafe.sbt.SbtScalariform
import com.typesafe.sbt.SbtScalariform._
import scalariform.formatter.preferences._
/**
* Organization:
*/
organization := "com.github.jparkie"
organizationName := "jparkie"
/**
* Library Meta:
*/
name := "Spark2Elasticsearch"
licenses := Seq(("Apache License, Version 2.0", url("http://www.apache.org/licenses/LICENSE-2.0")))
/**
* Scala:
*/
scalaVersion := "2.10.6"
crossScalaVersions := Seq("2.10.6", "2.11.7")
/**
* Library Dependencies:
*/
// Exclusion Rules:
val guavaRule = ExclusionRule("com.google.guava", "guava")
val sparkNetworkCommonRule = ExclusionRule("org.apache.spark", "spark-network-common")
// Versions:
val SparkVersion = "1.4.1"
val SparkTestVersion = "1.4.1_0.3.0"
val ScalaTestVersion = "2.2.4"
val ElasticsearchVersion = "2.0.2"
val Slf4jVersion = "1.7.10"
// Dependencies:
val sparkCore = "org.apache.spark" %% "spark-core" % SparkVersion % "provided" excludeAll(sparkNetworkCommonRule, guavaRule)
val sparkSql = "org.apache.spark" %% "spark-sql" % SparkVersion % "provided" excludeAll(sparkNetworkCommonRule, guavaRule)
val sparkTest = "com.holdenkarau" %% "spark-testing-base" % SparkTestVersion % "test"
val scalaTest = "org.scalatest" %% "scalatest" % ScalaTestVersion % "test"
val elasticsearch = "org.elasticsearch" % "elasticsearch" % ElasticsearchVersion
val slf4j = "org.slf4j" % "slf4j-api" % Slf4jVersion
libraryDependencies ++= Seq(sparkCore, sparkSql, sparkTest, scalaTest, elasticsearch, slf4j)
/**
* Tests:
*/
parallelExecution in Test := false
/**
* Scalariform:
*/
SbtScalariform.scalariformSettings
ScalariformKeys.preferences := FormattingPreferences()
.setPreference(RewriteArrowSymbols, false)
.setPreference(AlignParameters, true)
.setPreference(AlignSingleLineCaseStatements, true)
.setPreference(SpacesAroundMultiImports, true)
/**
* Scoverage:
*/
coverageEnabled in Test := true
/**
* Publishing to Sonatype:
*/
publishMavenStyle := true
publishArtifact in Test := false
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")
}
pomExtra := {
<url>https://github.com/jparkie/Spark2Elasticsearch</url>
<scm>
<url>git@github.com:jparkie/Spark2Elasticsearch.git</url>
<connection>scm:git:git@github.com:jparkie/Spark2Elasticsearch.git</connection>
</scm>
<developers>
<developer>
<id>jparkie</id>
<name>Jacob Park</name>
<url>https://github.com/jparkie</url>
</developer>
</developers>
}
/**
* Release:
*/
import ReleaseTransformations._
releasePublishArtifactsAction := PgpKeys.publishSigned.value
releaseProcess := Seq[ReleaseStep](
checkSnapshotDependencies,
inquireVersions,
runTest,
setReleaseVersion,
commitReleaseVersion,
tagRelease,
publishArtifacts,
setNextVersion,
commitNextVersion,
pushChanges
)