Plugin Documentation

Goals available for this plugin:

Goal Description
pousse-cafe:add-aggregate

Generates all required classes to represent a new Aggregate. Given Aggregate name MyAggregate, the following classes will be created:

  • MyAggregate: the Aggregate Root,
  • MyAggregateId: the Aggregate's identifier type,
  • MyAggregateFactory: the Aggregate Factory,
  • MyAggregateRepository: the Aggregate Repository,
  • MyAggregateDataAccess: the interface describing Repository's requirements for commands and queries on stored data,
  • MyAggregateAttributes: the implementation for Aggregate's attributes (i.e. the data actually stored).

Depending on chosen storage adapters, additional specific classes may be created in addition to the list mentioned above.

pousse-cafe:export-process

Exports a selected process or all processes into EMIL language and outputs the result to a given file.

pousse-cafe:generate-doc

Generates an expert-readable documentation of the Model. The documentation is generated in HTML and as a PDF file.

Documentation is generated by analyzing source code. Further instructions about how to enable documentation generation can be found here.

pousse-cafe:help Display help information on pousse-cafe-maven-plugin.
Call mvn pousse-cafe:help -Ddetail=true -Dgoal=<goal-name> to display parameter details.
pousse-cafe:import-process

Imports a process described using EMIL language i.e. generates missing types (aggregate classes, commands, events, adapters, etc.) and methods in the code base.

Added method's implementation is initially empty.

pousse-cafe:list-processes

Lists all process names detected in a project.

pousse-cafe:update-process

Updates a process. This goal is equivalent to calling export-process, edit the generated file then call import-process.

The text editor is selected using $EDITOR environment variable. If the variable is empty, then vim is being used as the default text editor.

pousse-cafe:validate

Validates the project source code.

Error or warning messages are generated. The build fails if errors are detected.

System Requirements

The following specifies the minimum requirements to run this Maven plugin:

Maven 2.0
JDK 11
Memory No minimum requirement.
Disk Space No minimum requirement.

Usage

You should specify the version in your project's plugin configuration:

<project>
  ...
  <build>
    <!-- To define the plugin version in your parent POM -->
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.pousse-cafe-framework</groupId>
          <artifactId>pousse-cafe-maven-plugin</artifactId>
          <version>0.19.0</version>
        </plugin>
        ...
      </plugins>
    </pluginManagement>
    <!-- To use the plugin goals in your POM or parent POM -->
    <plugins>
      <plugin>
        <groupId>org.pousse-cafe-framework</groupId>
        <artifactId>pousse-cafe-maven-plugin</artifactId>
        <version>0.19.0</version>
      </plugin>
      ...
    </plugins>
  </build>
  ...
</project>

For more information, see "Guide to Configuring Plug-ins"