mirror of https://github.com/sbt/sbt.git
Docs: Add scaladoc/javadoc howto
This commit is contained in:
parent
72d2cf06b7
commit
a890f9b52d
|
|
@ -0,0 +1,116 @@
|
||||||
|
========================
|
||||||
|
Generate Documentation
|
||||||
|
========================
|
||||||
|
|
||||||
|
.. howto::
|
||||||
|
:id: generate-javadoc-or-scaladoc
|
||||||
|
:title: Select javadoc or scaladoc
|
||||||
|
:type: text
|
||||||
|
|
||||||
|
sbt will run javadoc if there are only Java sources in the project, scaladoc otherwise.
|
||||||
|
|
||||||
|
sbt will run `javadoc` if there are only Java sources in the project.
|
||||||
|
If there are any Scala sources, sbt will run `scaladoc`.
|
||||||
|
(This situation results from `scaladoc` not processing Javadoc comments in Java sources nor linking to Javadoc.)
|
||||||
|
|
||||||
|
.. howto::
|
||||||
|
:id: definitive-doc-options
|
||||||
|
:title: Set the options used for generating scaladoc independently of compilation
|
||||||
|
:type: setting
|
||||||
|
|
||||||
|
scalacOptions in (Compile,doc) := Seq("-groups", "-implicits")
|
||||||
|
|
||||||
|
Scope `scalacOptions` to the `doc` task to configure `scaladoc`.
|
||||||
|
Use `:=` to definitively set the options without appending to the options for `compile`.
|
||||||
|
Scope to `Compile` for main sources or to `Test` for test sources.
|
||||||
|
For example, ::
|
||||||
|
|
||||||
|
scalacOptions in (Compile,doc) := Seq("-groups", "-implicits")
|
||||||
|
|
||||||
|
.. howto::
|
||||||
|
:id: additional-doc-options
|
||||||
|
:title: Add options for scaladoc to the compilation options
|
||||||
|
:type: setting
|
||||||
|
|
||||||
|
scalacOptions in (Compile,doc) ++= Seq("-groups", "-implicits")
|
||||||
|
|
||||||
|
Scope `scalacOptions` to the `doc` task to configure `scaladoc`.
|
||||||
|
Use `+=` or `++=` to append options to the base options.
|
||||||
|
To append a single option, use `+=`.
|
||||||
|
To append a `Seq[String]`, use `++=`.
|
||||||
|
Scope to `Compile` for main sources or to `Test` for test sources.
|
||||||
|
For example, ::
|
||||||
|
|
||||||
|
scalacOptions in (Compile,doc) ++= Seq("-groups", "-implicits")
|
||||||
|
|
||||||
|
.. howto::
|
||||||
|
:id: definitive-javadoc-options
|
||||||
|
:title: Set the options used for generating javadoc independently of compilation
|
||||||
|
:type: setting
|
||||||
|
|
||||||
|
javacOptions in (Compile,doc) := Seq("-notimestamp", "-linksource")
|
||||||
|
|
||||||
|
Scope `javacOptions` to the `doc` task to configure `javadoc`.
|
||||||
|
Use `:=` to definitively set the options without appending to the options for `compile`.
|
||||||
|
Scope to `Compile` for main sources or to `Test` for test sources.
|
||||||
|
|
||||||
|
.. howto::
|
||||||
|
:id: additional-doc-options
|
||||||
|
:title: Add options for javadoc to the compilation options
|
||||||
|
:type: setting
|
||||||
|
|
||||||
|
javacOptions in (Compile,doc) ++= Seq("-notimestamp", "-linksource")
|
||||||
|
|
||||||
|
Scope `javacOptions` to the `doc` task to configure `javadoc`.
|
||||||
|
Use `+=` or `++=` to append options to the base options.
|
||||||
|
To append a single option, use `+=`.
|
||||||
|
To append a `Seq[String]`, use `++=`.
|
||||||
|
Scope to `Compile` for main sources or to `Test` for test sources.
|
||||||
|
For example, ::
|
||||||
|
|
||||||
|
javacOptions in (Compile,doc) ++= Seq("-notimestamp", "-linksource")
|
||||||
|
|
||||||
|
.. howto::
|
||||||
|
:id: auto-link
|
||||||
|
:title: Enable automatic linking to the external Scaladoc of managed dependencies
|
||||||
|
:type: setting
|
||||||
|
|
||||||
|
autoAPIMappings := true
|
||||||
|
|
||||||
|
Set `autoAPIMappings := true` for sbt to tell `scaladoc` where it can find the API documentation for managed dependencies.
|
||||||
|
This requires that dependencies have this information in its metadata and you are using `scaladoc` for Scala 2.10.2 or later.
|
||||||
|
|
||||||
|
.. howto::
|
||||||
|
:id: manual-api-links
|
||||||
|
:title: Enable manual linking to the external Scaladoc of managed dependencies
|
||||||
|
:type: setting
|
||||||
|
|
||||||
|
apiMappings += ( <File> -> <URL> )
|
||||||
|
|
||||||
|
Add mappings of type `(File, URL)` to `apiMappings` to manually tell `scaladoc` where it can find the API documentation for dependencies.
|
||||||
|
(This requires `scaladoc` for Scala 2.10.2 or later.)
|
||||||
|
These mappings are used in addition to `autoAPIMappings`, so this manual configuration is typically done for unmanaged dependencies.
|
||||||
|
The `File` key is the location of the dependency as passed to the classpath.
|
||||||
|
The `URL` value is the base URL of the API documentation for the dependency.
|
||||||
|
For example, ::
|
||||||
|
|
||||||
|
apiMappings += (
|
||||||
|
(unmanagedBase.value / "a-library.jar") ->
|
||||||
|
url("http://example.org/api/")
|
||||||
|
)
|
||||||
|
|
||||||
|
.. howto::
|
||||||
|
:id: define-api-url
|
||||||
|
:title: Define the location of API documentation for a library.
|
||||||
|
:type: setting
|
||||||
|
|
||||||
|
apiURL := Some(url("http://example.org/api/"))
|
||||||
|
|
||||||
|
Set `apiURL` to define the base `URL` for the Scaladocs for your library.
|
||||||
|
This will enable clients of your library to automatically link against the API documentation using `autoAPIMappings`.
|
||||||
|
(This only works for Scala 2.10.2 and later.)
|
||||||
|
For example, ::
|
||||||
|
|
||||||
|
apiURL := Some(url("http://example.org/api/"))
|
||||||
|
|
||||||
|
This information will get included in a property of the published `pom.xml`, where it can be automatically consumed by sbt.
|
||||||
Loading…
Reference in New Issue