Using the Maven Scaffolding to create the Java project template
Create a custom Java project template from the command line
caution
Before starting, please make sure that your environment meets all the requirements.
You can customize the deployment of the project running a handful of command lines. Currently, scaffolding is handled by Maven and you can use it by cloning one of the workload repositories and then installing the project as a Maven archetype locally; from there, we can create a new project by using that archetype as a template. To do so we do:
Clone any of the Stacks Java Workloads (
simple-api
,stacks-java-cqrs
orstacks-java-cqrs-events
)Navigate to the
<directory you cloned the project into>/java
in the terminalThen issue the following Maven commands, using the included wrapper:
./mvnw archetype:create-from-project -DpropertyFile=archetype.properties
- To create the archetypecd target/generated-sources/archetype
- Navigate to the folder it was created in..\..\..\mvnw install
- Install the archetype locally
Now, navigate to a directory in which you'd like to crate the localized project into
To create the project we do:
<path-to-mvn-executable>/mvn archetype:generate \
-DarchetypeGroupId='com.amido.stacks.workloads' \
-DarchetypeArtifactId='<archetype-artifact-id>' \
-DarchetypeVersion='<archetype-version>' \
-DgroupId='<your-group-id>' \
-DartifactId='<your-artifact-id>' \
-Dversion='<your-version>' \
-Dpackage='<your-package-name><archetype-artifact-id>
refers to the archetype name ID, as that was created above. That ID is made of the artifact name of the original project as declared in itspom.xml
suffixed with-archetype
- For example:
stacks-api-cqrs-events-archetype
. The name can also be observed in the log created from the first command above.
- For example:
<archetype-version>
should be taken from thepom.xml
of the original project<your-group-id>
is a placeholder for your group ID<your-artifact-id>
is a placeholder for your artifact ID<your-version>
is a placeholder for your version<your-package-name>
is a placeholder for the root package name and structure.- For example, using
com.test.stacks
will instruct Maven to place the code insrc/main/java/com/test/stacks
and update all the relevant references accordingly (i.e.imports
)
- For example, using
note
For now, until the release of the Amido STACKS CLI Tool v2 is released, this is the only way to get started with Stacks.