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 |

