Stephane Nicoll 3b0509a9bb Add baseDir option
Previously the generated archive wasn't self contained and the user had
to create a dedicated directory before extracting it in case the archive
utility does not handle that use case (MacOS supports that by default).

A baseDir request attribute has been added and generate a base directory
in the archive when set. It is enabled by default in the web UI and takes
the same value as the artifactId. Other clients are unaffected by this
change (and shouldn't probably).

Note that the legacy HTML form isn't impacted by this change either as
older STS versions expect the archive to have a very specific format.

curl-based tools can use that new baseDir request parameter to specify
that a base directory is required, something like

curl https://start.spring.io/starter.tgz -d baseDir=my-project

Closes gh-65
2015-01-16 14:29:57 +01:00
2015-01-16 14:29:57 +01:00
2013-08-04 13:50:06 +01:00
2014-08-18 17:50:21 +02:00
2015-01-16 14:29:57 +01:00
2014-12-08 15:59:12 +01:00
2015-01-16 13:14:20 +01:00

= Spring Initializr

Spring Initializr is a configurable service to generate quickstart project. You can see our default
instance at https://start.spring.io

NOTE: Check the link:CHANGELOG.adoc[changelog] for the list of changes

== Prerequisites

You need Java (1.6 or better) and a bash-like shell.

If you are on a Mac and using http://brew.sh/[homebrew], all you need to do to install it is:

[indent=0]
----
    $ brew tap pivotal/tap
    $ brew install springboot
----

It will install `/usr/local/bin/spring`. You can jump right to <<run-app>>.

An alternative way to install the `spring` command line interface can be installed like this:

[indent=0]
----
    $ curl start.spring.io/install.sh | bash
----

After running that command you should see a `spring` directory:

[indent=0]
----
    $ ./spring/bin/spring --help

    usage: spring [--help] [--version]
       <command> [<args>]
    ...
----

You could add that `bin` directory to your `PATH` (the examples below
assume you did that).

If you don't have `curl` or `zip` you can probably get them (for
Windows users we recommend http://cygwin.org[cygwin]), or you can
download the http://start.spring.io/spring.zip[zip file] and unpack
it yourself.

== Project structure

Initializr is a library that provides all the default features and a service with a very simple script
that uses the auto-configuration feature of Spring Boot. All you need is _grabbing_ the library and
create a proper configuration file with the following script:

[indent=0]
----
  package org.acme.myapp

  @Grab('io.spring.initalizr:initializr:1.0.0.BUILD-SNAPSHOT')
  class InitializerService { }
----

As a reference, `initializr-service` represents the _default_ service that runs at http://start.spring.io

[[run-app]]
== Running the app locally

NOTE: Initializr currently uses a milestone release of `spring-test-htmlunit` that is available from
the http://repo.spring.io/milestone[spring.io milestone repository]. If you use a repository
manager, please make sure to configure it accordingly. For your convenience, the project defines
a `springMilestone` that you should activate if you haven't defined that repository yourself.

First make sure that you have built the library:

[indent=0]
----
    $ cd initializr
    $ mvn clean install -PspringMilestone
----

Once you have done that, you can easily start the app using the spring command from the `initializr-service`
directory (`cd ../initializr-service`):

[indent=0]
----
    $ spring run app.groovy
----

## Deploying to Cloud Foundry

If you are on a Mac and using http://brew.sh/[homebrew], install the Cloud Foundry CLI:

[indent=0]
----
    $ brew install cloudfoundry-cli
----

Alternatively, download a suitable binary for your platform from 
https://console.run.pivotal.io/tools[Pivotal Web Services].

An example Cloud Foundry `manifest.yml` file is provided. You should ensure that
the application name and URL (name and host values) are suitable for your environment
before running `cf push`.

You can jar up the app and make it executable in any environment.

[indent=0]
----
    $ spring jar start.jar app.groovy
----

Once the jar has been created, you can push the application:

[indent=0]
----
    $ cf push start -p start.jar -n start-<space>
----

Where `<space>` is the name of the space. As a failsafe, and a
reminder to be explicit, the deployment will fail in production
without the `-n`. It is needed to select the route because there is a
manifest that defaults it to `start-development`.

== License
Spring Initializr is Open Source software released under the
http://www.apache.org/licenses/LICENSE-2.0.html[Apache 2.0 license].
S
Description
Readme
12 MiB
Languages
Java 99.2%
Ruby 0.3%
Shell 0.3%
Mustache 0.1%