initializr/README.adoc
2014-12-08 15:54:25 +01:00

116 lines
3.2 KiB
Plaintext

= Spring Initializr
== 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`.