JM SDK Maven Plugin Usage Examples

Examples showing how to use all goals and lifecycle phases are provided below.

Running a Goal

Each JM SDK Maven Plugin goal is responsible for executing one specific task. You can run multiple goals in sequence to perform more complex actions.

All goals in this plugin require arguments to be specified, and these can be provided either in property files or as command-line parameters. Each new Maven project provides a number of base parameters configured in the build.properties and transact-auth.properties files. Some examples of base parameters are app.name, archive.file, manager.url, and manager.username.

Defining goal parameters in *.properties files reduces or eliminates the need to pass these parameters on the command line. For example, the tm-sdk:app-scaffold-connect goal, which scaffolds an application package connection, has two mandatory properties: dir and connection.name. If the dir property is defined in a *.properties file, only the connection.name parameter needs to be provided on the command line. The full Maven command looks like this:

mvn initialize tm-sdk:app-scaffold-connect -Dconnection.name="My Connect"

Note that the command above includes the initialize phase which is required by all goals and lifecycle phases to read the base parameter values from build.properties and transact-auth.properties.

The following sections list all of the available goals, and provide a usage example for each goal.

App goals

Goal Command
app-delete mvn initialize tm-sdk:app-delete
app-deploy mvn initialize tm-sdk:app-deploy
app-get mvn initialize tm-sdk:app-get
app-package mvn initialize tm-sdk:app-package
app-scaffold mvn initialize tm-sdk:app-scaffold
app-scaffold-connect mvn initialize tm-sdk:app-scaffold-connect -Dconnection.name="My Connect"
app-scaffold-form mvn initialize tm-sdk:app-scaffold-form -Dform.code="my-form" -Dform.name="My Form"
app-scaffold-func mvn initialize tm-sdk:app-scaffold-func -Dfunc.name="My Fluent Form Func" -Dfunc.template="Fluent Function" -Dfunc.package.name="com.func" -Dtrigger="Form Update"
app-svc-test mvn initialize tm-sdk:app-svc-test
app-test mvn initialize tm-sdk:app-test

Archive goals

Goal Command
archive-deploy mvn initialize tm-sdk:archive-deploy

Gen goals

Goal Command
gen-vo mvn initialize tm-sdk:gen-vo -Dform.seed.file="src/main/resources/forms/my-form/formdata.xml" -Dtarget.xpath="//Applicant" -Dvo.package.name="com.vo"

Scm goals

Goal Command
lib-export mvn initialize tm-sdk:lib-export
lib-import mvn initialize tm-sdk:lib-import
scm-clone mvn initialize tm-sdk:scm-clone
scm-diff mvn initialize tm-sdk:scm-diff
scm-project-add mvn initialize tm-sdk:scm-project-add -Dscm.project.name="New SCM Project" -Dscm.project.visibility="Public"
scm-project-clone mvn initialize tm-sdk:scm-project-clone
scm-project-diff mvn initialize tm-sdk:scm-project-diff
scm-project-pull mvn initialize tm-sdk:scm-project-pull -Dscm.force="No"
scm-project-push mvn initialize tm-sdk:scm-project-push -Dscm.force="No"
scm-project-status mvn initialize tm-sdk:scm-project-status
scm-pull mvn initialize tm-sdk:scm-pull -Dscm.force="No"
scm-push mvn initialize tm-sdk:scm-push -Dscm.force="No"

Svc goals

Goal Command
svc-clone mvn initialize tm-sdk:svc-clone -Dclone.service.name="My Fluent Form Security Filter" -Dclone.service.version="0.1.0"
svc-delete mvn initialize tm-sdk:svc-delete
svc-deploy mvn initialize tm-sdk:svc-deploy
svc-imports mvn initialize tm-sdk:svc-imports
svc-package mvn initialize tm-sdk:svc-package
svc-scaffold mvn initialize tm-sdk:svc-scaffold -Dfluent.package.name="com.fluent" -Dfluent.service.name="My Fluent Dynamic Data" -Dfluent.service.template="Fluent Dynamic Data"
svc-scaffold-legacy mvn initialize tm-sdk:svc-scaffold-legacy -Dlegacy.package.name="com.legacy" -Dlegacy.service.name="My Groovy Form Prefill" -Dlegacy.service.template="Groovy Form Prefill"
svc-test mvn initialize tm-sdk:svc-test
svc-test-remote mvn initialize tm-sdk:svc-test-remote
svc-typecheck mvn initialize tm-sdk:svc-typecheck

Running a Lifecycle Phase

A Maven phase represents a stage in the build lifecycle. Each phase is a sequence of one or more goals. Phases are executed in a specified order. This means that if we run a specific phase, it executes all the preceding phases as well as the specified phase and all configured goals.

For example, the app-package phase is the third phase in the App build lifecycle, preceded by the app-imports and app-typecheck phases (see App Lifecycle Phases below). As each phase is linked to a single goal, running the app-package phase is equivalent to running the following goals in this order:

mvn initialize tm-sdk:svc-imports
mvn initialize tm-sdk:svc-typecheck
mvn initialize tm-sdk:app-package

The following sections list all of the available phases, and provide a usage example for each phase.

App Lifecycle Phases

Phase Command
app-imports mvn initialize app-imports
app-typecheck mvn initialize app-typecheck
app-package mvn initialize app-package
app-svc-test mvn initialize app-svc-test
app-test mvn initialize app-test
app-deploy mvn initialize app-deploy

Svc Lifecycle Phases

Phase Command
svc-imports mvn initialize svc-imports
svc-typecheck mvn initialize svc-typecheck
svc-clean mvn initialize svc-clean
svc-package mvn initialize svc-package
svc-test mvn initialize svc-test
svc-deploy mvn initialize svc-deploy