[[initializr-documentation]]
= Spring Initializr Documentation

[partintro]
--
This section provides a brief overview of the Spring Initializr reference documentation:
think of it as map for the rest of the document. Some sections are targeted to a specific
audience so this reference guide is not meant to be read in a linear fashion.
--

Spring Initializr provides an extensible API to generate JVM-based projects, and to
inspect the metadata used to generate projects, for instance to list the available
dependencies and versions.

The documentation is roughly divided into three parts:

* <<introduction.adoc#introduction>>: This section provides an introduction to the library and how one
can interact with the service to generate a project.

* <<configuration-guide.adoc#configuration-guide>>: This section covers creating your own
instance of Spring Initializr using the jars as libraries in your own app.

* <<api-guide.adoc#api-guide>>: This section covers the API used for project generation.
The API can be used standalone or embedded in other tools (e.g. it is used in major IDEs
such as Spring Tool Suite, IntelliJ IDEA Ultimate, Netbeans and VSCode).

You can easily create your own instance using Spring Initializr, by using the jars as
libraries in your own app. There is minimal code involved and the service has a very rich
configuration structure, allowing you to define not only the values of various project
attributes but also the list of dependencies and the constraints to apply to them. If that
sounds interesting, then <<configuration-guide.adoc#configuration-guide>> has all the
details you need. You might only want to modify an existing instance of Spring Initializr,
e.g. to add a new dependency type, or update the version of an existing
one. For those and other simple and common use cases check out
<<configuration-guide.adoc#configuration-howto>>.

Spring Initializr also provides an extensible API to generate JVM-based projects, and to
inspect the metadata used to generate projects, for instance to list the available
dependencies and versions. The API can be used standalone or embedded in other tools
(e.g. it is used in major IDEs such as Spring Tool Suite, IntelliJ IDEA Ultimate, Netbeans
and VSCode). These features are covered in <<api-guide.adoc#api-guide>>.

[[initializr-documentation-about]]
== About the documentation
The Spring Initializr reference guide is available as
{spring-initializr-docs}/html[html]. The
latest copy is available at {spring-initializr-docs-current}.

Copies of this document may be made for your own use and for
distribution to others, provided that you do not charge any fee for such copies and
further provided that each copy contains this Copyright Notice, whether distributed
in print or electronically.



[[initializr-documentation-getting-help]]
== Getting help
Having trouble with Spring Initializr, We'd like to help!

* Ask a question on https://gitter.im/spring-io/initializr[Gitter].
* Report bugs with Spring Initializr at https://github.com/spring-io/initializr/issues.

NOTE: All of Spring Initializr is open source, including the documentation! If you
find problems with the docs; or if you just want to improve them, please
{github-code}[get involved].