Creating from a Maven Archetype
Maven Archetype
Brooklyn includes a maven archetype, which can be used to create the project structure for a new application.
This can be done interactively using:
$ mvn archetype:generate
The user will be prompted for the archetype to use (i.e. group “io.brooklyn” and artifact “brooklyn-archetype-quickstart”), as well as options for the project to be created.
Alternatively, all options can be supplied at the command line. For example, if creating a project named “autobrick” for “com.acme”:
$ mvn archetype:generate \
-DarchetypeGroupId=io.brooklyn \
-DarchetypeArtifactId=brooklyn-archetype-quickstart \
-DarchetypeVersion=0.7.0-incubating \
-DgroupId=com.acme -DartifactId=autobrick \
-Dversion=0.1.0-SNAPSHOT \
-DpackageName=com.acme.autobrick \
-DinteractiveMode=false
This will create a directory with the artifact name (e.g. “autobrick” in the example above). Note that if run from a directory containing a pom, it will also modify that pom to add this as a module!
The project will contain an example app. You can run this, and also replace it with your own application code.
To build, run the commands:
$ cd autobrick
$ mvn clean install assembly:assembly
The assembly command will build a complete standalone distribution archive in target/autobrick-0.1.0-SNAPSHOT-dist.tar.gz
,
suitable for redistribution and containing ./start.sh
in the root.
An unpacked equivalent is placed in target/autobrick-0.1.0-SNAPSHOT-dist
,
thus you can run the single-node sample locally with:
$ cd target/autobrick-0.1.0-SNAPSHOT-dist/autobrick-0.1.0-SNAPSHOT/
$ ./start.sh launch --single
This start.sh
script has all of the same options as the default brooklyn
script,
including ./start.sh help
and the --location
argument for launch
,
with a couple of extra launch
options for the sample blueprints in the archetype project:
./start.sh launch --single
will launch a single app-server instance./start.sh launch --cluster
will launch a cluster of app-servers