blob: bc2f25470a2eb40fe476a344925dffb85fec489f [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import UnidocKeys._
name := "apache-predictionio-parent"
version in ThisBuild := "0.10.0-incubating"
organization in ThisBuild := "org.apache.predictionio"
scalaVersion in ThisBuild := "2.10.5"
scalacOptions in ThisBuild ++= Seq("-deprecation", "-unchecked", "-feature")
scalacOptions in (ThisBuild, Test) ++= Seq("-Yrangepos")
fork in (ThisBuild, run) := true
javacOptions in (ThisBuild, compile) ++= Seq("-source", "1.7", "-target", "1.7",
"-Xlint:deprecation", "-Xlint:unchecked")
elasticsearchVersion in ThisBuild := "1.4.4"
json4sVersion in ThisBuild := "3.2.10"
sparkVersion in ThisBuild := "1.4.0"
lazy val pioBuildInfoSettings = buildInfoSettings ++ Seq(
sourceGenerators in Compile <+= buildInfo,
buildInfoKeys := Seq[BuildInfoKey](
name,
version,
scalaVersion,
sbtVersion,
sparkVersion),
buildInfoPackage := "org.apache.predictionio.core")
lazy val conf = file(".") / "conf"
lazy val root = project in file(".") aggregate(
common,
core,
data,
tools,
e2)
lazy val common = (project in file("common")).
settings(unmanagedClasspath in Test += conf)
lazy val core = (project in file("core")).
dependsOn(data).
settings(genjavadocSettings: _*).
settings(pioBuildInfoSettings: _*).
enablePlugins(SbtTwirl).
settings(unmanagedClasspath in Test += conf)
lazy val data = (project in file("data")).
dependsOn(common).
settings(genjavadocSettings: _*).
settings(unmanagedClasspath in Test += conf)
lazy val tools = (project in file("tools")).
dependsOn(core).
dependsOn(data).
enablePlugins(SbtTwirl).
settings(unmanagedClasspath in Test += conf)
lazy val e2 = (project in file("e2")).
settings(genjavadocSettings: _*).
settings(unmanagedClasspath in Test += conf)
scalaJavaUnidocSettings
// scalaUnidocSettings
unidocAllSources in (JavaUnidoc, unidoc) := {
(unidocAllSources in (JavaUnidoc, unidoc)).value
.map(_.filterNot(_.getName.contains("$")))
}
scalacOptions in (ScalaUnidoc, unidoc) ++= Seq(
"-groups",
"-skip-packages",
Seq(
"akka",
"breeze",
"html",
"org.apache.predictionio.annotation",
"org.apache.predictionio.controller.html",
"org.apache.predictionio.data.api",
"org.apache.predictionio.data.view",
"org.apache.predictionio.workflow",
"org.apache.predictionio.tools",
"org",
"scalikejdbc").mkString(":"),
"-doc-title",
"PredictionIO Scala API",
"-doc-version",
version.value,
"-doc-root-content",
"docs/scaladoc/rootdoc.txt")
javacOptions in (JavaUnidoc, unidoc) := Seq(
"-subpackages",
"org.apache.predictionio",
"-exclude",
Seq(
"org.apache.predictionio.controller.html",
"org.apache.predictionio.data.api",
"org.apache.predictionio.data.view",
"org.apache.predictionio.data.webhooks.*",
"org.apache.predictionio.workflow",
"org.apache.predictionio.tools",
"org.apache.hadoop").mkString(":"),
"-windowtitle",
"PredictionIO Javadoc " + version.value,
"-group",
"Java Controllers",
Seq(
"org.apache.predictionio.controller.java",
"org.apache.predictionio.data.store.java").mkString(":"),
"-group",
"Scala Base Classes",
Seq(
"org.apache.predictionio.controller",
"org.apache.predictionio.core",
"org.apache.predictionio.data.storage",
"org.apache.predictionio.data.storage.*",
"org.apache.predictionio.data.store").mkString(":"),
"-overview",
"docs/javadoc/javadoc-overview.html",
"-noqualifier",
"java.lang")
lazy val pioUnidoc = taskKey[Unit]("Builds PredictionIO ScalaDoc and Javadoc")
pioUnidoc := {
(unidoc in Compile).value
val log = streams.value.log
log.info("Adding custom styling.")
IO.append(
crossTarget.value / "unidoc" / "lib" / "template.css",
IO.read(baseDirectory.value / "docs" / "scaladoc" / "api-docs.css"))
IO.append(
crossTarget.value / "unidoc" / "lib" / "template.js",
IO.read(baseDirectory.value / "docs" / "scaladoc" / "api-docs.js"))
}
homepage := Some(url("http://predictionio.incubator.apache.org"))
pomExtra := {
<parent>
<groupId>org.apache</groupId>
<artifactId>apache</artifactId>
<version>18</version>
</parent>
<scm>
<connection>scm:git:github.com/apache/incubator-predictionio</connection>
<developerConnection>scm:git:https://git-wip-us.apache.org/repos/asf/incubator-predictionio.git</developerConnection>
<url>github.com/apache/incubator-predictionio</url>
</scm>
<developers>
<developer>
<id>donald</id>
<name>Donald Szeto</name>
<url>http://predictionio.incubator.apache.org</url>
<email>donald@apache.org</email>
</developer>
</developers>
}
childrenPomExtra in ThisBuild := {
<parent>
<groupId>org.apache.predictionio</groupId>
<artifactId>predictionio-parent_{scalaBinaryVersion.value}</artifactId>
<version>{version.value}</version>
</parent>
}
concurrentRestrictions in Global := Seq(
Tags.limit(Tags.CPU, 1),
Tags.limit(Tags.Network, 1),
Tags.limit(Tags.Test, 1),
Tags.limitAll( 1 )
)
parallelExecution := false
parallelExecution in Global := false
testOptions in Test += Tests.Argument("-oDF")