A command-line (CLI) application that can provide multiple commands in a single-JAR capsule.

Creation

You need to have Apache Maven 3.1+ installed. To create a command-line application project from scratch, run the following command:

mvn org.seedstack:seedstack-maven-plugin:generate -Dtype=cli

This will invoke the generate goal of the SeedStack maven plugin generate goal which will:

The process is interactive and will ask you a few questions about the project to be created.

Result

After execution, a single module project is created:

- mycli
    |- src
        |- main
        |   |- java
        |   |   |- org.myorg.mycli
        |   |       |- [application]    <-- application logic
        |   |       |- cli              <-- command-line handlers
        |   |       |- [domain]
        |   |       |   |- [model]      <-- domain model
        |   |       |   |- [services]   <-- domain services
        |   |       |- [infrastructure] <-- technical infrastructure
        |   |- resources
        |       |- META-INF
        |           |- configuration    <-- main configuration
        |- test
            |- java
            |- resources
                |- META-INF
                    |- configuration    <-- test configuration

Note that the directory in brackets are not created by the archetype. They are the recommended locations if you need to add any business domain to your project. You can also choose to put the domain in a separate domain module.

More resources