sbt-parent
SBT plugins reducing boilerplate for a variety of commmon tasks
Modules
assembly

sbt-assembly
wrapper- building+publishing thin shaded JARs
base

- wraps all modules in this project
- adds many hammerlab library-aliases default configs
deps

Dependency-management DSL and helpers
github

Fill in scmInfo
information, populate other relevant POM fields
js

Shorthands and dependency-aliases for ScalaJS projects
maven

Publish to Maven Central, fill POM fields, add default resolvers
parent

- wrapper for all the plugins here
- includes aliases for common dependencies
root

Configure multi-module projects
scala

DSL and settings for managing Scala versions
spark

Configure projects that use Apache Spark
test

Use ScalaTest, publish -tests
JARs
travis

Interface with Coveralls and TravisCI
versions

Manage dependency-versions
Usage
parent
/base
All modules: To depend on all the modules above, add the parent
plugin to project/plugins.sbt
:
addSbtPlugin("org.hammerlab.sbt" % "parent" % "4.6.7")
The base
module also wraps that and adds many hammerlab library-aliases:
addSbtPlugin("org.hammerlab.sbt" % "base" % "4.6.7")
Individual modules
The modules above are also all available individually:
// Settings for publishing to Maven Central
addSbtPlugin("org.hammerlab.sbt" % "maven" % "4.2.1")
// Adding GitHub-repo info
addSbtPlugin("org.hammerlab.sbt" % "github" % "4.1.0")
// etc.
Subprojects' READMEs contain more info about their functionality.
Examples
hammerlab projects demonstrating use of various plugins from this repo :
- math-utils
- multi-module project with classpath-dependencies between modules
- cross-published for Scala 2.11 and 2.12
- wildcard-imports at
sbt console
startup
- io-utils
- spark-bam
- multiple modules
- shading+renaming of dependencies
- many different dependency-configurations
- inter-module test-scoped dependencies
Using
Add to project/plugins.sbt
of an existing project:
addSbtPlugin("org.hammerlab.sbt" % "parent" % "4.6.7")
or create a new project using giter8:
g8 hammerlab/sbt-parent.g8
g8 hammerlab/sbt-base.g8
(These templates live at hammerlab/sbt-parent.g8 / hammerlab/sbt-base.g8)