`docSetting` has been updated to do both Scaladoc and Javadoc. In
Scala/Java hybrid projects, the output docs are rebased to `scala`
or `java` sub-directory accordingly. But for pure scala or pure java
projects the subdirectories aren't added to becompliant with user
expectation as much as possible. We do hybrid mode iff both *.scala
and *.java files exist; other doc resources (package.html, *.jpg etc.)
don't influence the decision.
This support excluding a library from the dependency tree for a given
set of `ExclusionRule`s. There are two ways to achieve this:
- Using `organization` and `name` pairs:
val dep = "org" % "name" % "version" exclude("commons-codec", "commons-codec") exclude("org.slf4j", "slf4j-log4j")
- Using `ExclusionRule`:
val dep = "org" % "name" % "version" excludeAll(ExclusionRule("commons-codec", "commons-codec"), ExclusionRule("org.slf4j", "slf4j-log4j"))
- JavacLogger.msgs uses ListBuffer for constant time append
- Synchronized access to JavacLogger.msgs since appends comes from multiple
threads
- JavacLogger.info uses Level.Info instead of Level.Debug
- Wrapped call to javac in allCatch to guarantee logger being flushed
build and publish main sources and docs by default
control built-in artifacts with 'publish-artifact'
// disable publishing docs
publishArtifact in (Compile,packageDoc) := false
// enable publishing test jar, docs, and sources
publishArtifact in Test := true