Maven Plugin User Guide
Introduction
Payara Cloud has a Maven plugin to manage applications in the Payara Cloud environment. The plugin provides commands to log in, deploy, start, stop, undeploy, and enable continuous deployment of applications with live browser reload.
The plugin requires JDK 8 or higher, and the latest version is 1.0-Alpha1
.
Configurable Goals
login
Aim: This goal logs in to a Payara Cloud instance. It initiates a browser-based flow to log in to the Payara Cloud management endpoint, and stores the token in the home directory.
Usage: mvn payara-cloud:login
Example:
<plugin>
<groupId>fish.payara.maven.plugins</groupId>
<artifactId>payara-cloud-maven-plugin</artifactId>
<version>${payara.cloud.maven.plugin.version}</version>
<executions>
<execution>
<goals>
<goal>login</goal>
</goals>
</execution>
</executions>
</plugin>
Element | Default | Notes |
---|---|---|
applicationName |
${project.artifactId} |
Name of the application. |
subscriptionName |
First available subscription |
Name of the subscription to use. Defaults to the first available subscription if not specified. |
namespaceName |
First available namespace |
Name of the namespace to use. Defaults to the first available namespace if not specified. |
interactive |
true |
If set to true, enables interactive mode. |
skip |
false |
Skips the execution of the goal. |
login
goal uses OAuth Device Authentication flow to establish its identity to Payara Cloud.
It will generate a confirmation code, which you use to log in to Payara Cloud web interface via browser.
mvn payara-cloud:login INFO: In order to log in follow following link: https://login.payara.cloud/activate INFO: Your confirmation code is XZHD-CFDJ INFO: Opening URL: https://login.payara.cloud/activate?user_code=XZHD-CFDJ
The client will also open the browser for you if your environment permits it. In case you follow link manually you’ll need to enter the confirmation code on first page:
After that a confirmation page is displayed:
Only confirm this page if you knowingly initiated login flow via pcl login , payara-cloud-maven-plugin or Payara IDE plugins .
Payara Cloud will never ask you to authenticate via this flow via any other channel or under any other circumstance, such as solving a support issue.
|
If you are logging in for the first time the authentication service will ask you to authorize Payara Cloud CLI to perform application management tasks with your identity:
After confirming this, the authentication process is completed and you may close the browser window:
deploy
Aim: This goal uploads an application binary and deploys an existing application. It can be used to provide a new binary for an existing application or to upload a new application into a namespace.
Usage: mvn payara-cloud:deploy
Example:
<plugin>
<groupId>fish.payara.maven.plugins</groupId>
<artifactId>payara-cloud-maven-plugin</artifactId>
<version>${payara.cloud.maven.plugin.version}</version>
<executions>
<execution>
<goals>
<goal>deploy</goal>
</goals>
</execution>
</executions>
<configuration>
<applicationPath>${project.build.directory}/${project.build.finalName}.war</applicationPath>
<applicationName>myApp</applicationName>
<subscriptionName>mySubscriptionName</subscriptionName>
<namespaceName>myNamespaceName</namespaceName>
</configuration>
</plugin>
Element | Default | Notes |
---|---|---|
applicationPath |
${project.build.directory}/${project.build.finalName}.war |
Path to the application binary. |
applicationName |
${project.artifactId} |
Name of the application. |
subscriptionName |
First available subscription |
Name of the subscription to use. Defaults to the first available subscription if not specified. |
namespaceName |
First available namespace |
Name of the namespace to use. Defaults to the first available namespace if not specified. |
interactive |
true |
If set to true, enables interactive mode. |
skip |
false |
Skips the execution of the goal. |
start
Aim: This goal starts an application in Payara Cloud. It is used when an application is in a stopped state.
Usage: mvn payara-cloud:start
Example:
<plugin>
<groupId>fish.payara.maven.plugins</groupId>
<artifactId>payara-cloud-maven-plugin</artifactId>
<version>${payara.cloud.maven.plugin.version}</version>
<executions>
<execution>
<goals>
<goal>start</goal>
</goals>
</execution>
</executions>
<configuration>
<applicationName>myApp</applicationName>
<subscriptionName>mySubscriptionName</subscriptionName>
<namespaceName>myNamespaceName</namespaceName>
</configuration>
</plugin>
Element | Default | Notes |
---|---|---|
applicationName |
${project.artifactId} |
Name of the application. |
subscriptionName |
First available subscription |
Name of the subscription to use. Defaults to the first available subscription if not specified. |
namespaceName |
First available namespace |
Name of the namespace to use. Defaults to the first available namespace if not specified. |
interactive |
true |
If set to true, enables interactive mode. |
skip |
false |
Skips the execution of the goal. |
stop
Aim: This goal stops a deployed application in Payara Cloud.
Usage: mvn payara-cloud:stop
Example:
<plugin>
<groupId>fish.payara.maven.plugins</groupId>
<artifactId>payara-cloud-maven-plugin</artifactId>
<version>${payara.cloud.maven.plugin.version}</version>
<executions>
<execution>
<goals>
<goal>stop</goal>
</goals>
</execution>
</executions>
<configuration>
<applicationName>myApp</applicationName>
<subscriptionName>mySubscriptionName</subscriptionName>
<namespaceName>myNamespaceName</namespaceName>
</configuration>
</plugin>
Element | Default | Notes |
---|---|---|
applicationName |
${project.artifactId} |
Name of the application. |
subscriptionName |
First available subscription |
Name of the subscription to use. Defaults to the first available subscription if not specified. |
namespaceName |
First available namespace |
Name of the namespace to use. Defaults to the first available namespace if not specified. |
interactive |
true |
If set to true, enables interactive mode. |
skip |
false |
Skips the execution of the goal. |
undeploy
Aim: This goal deletes the deployed application from Payara Cloud.
Usage: mvn payara-cloud:undeploy
Example:
<plugin>
<groupId>fish.payara.maven.plugins</groupId>
<artifactId>payara-cloud-maven-plugin</artifactId>
<version>${payara.cloud.maven.plugin.version}</version>
<executions>
<execution>
<goals>
<goal>undeploy</goal>
</goals>
</execution>
</executions>
<configuration>
<applicationName>myApp</applicationName>
<subscriptionName>mySubscriptionName</subscriptionName>
<namespaceName>myNamespaceName</namespaceName>
</configuration>
</plugin>
Element | Default | Notes |
---|---|---|
applicationName |
${project.artifactId} |
Name of the application. |
subscriptionName |
First available subscription |
Name of the subscription to use. Defaults to the first available subscription if not specified. |
namespaceName |
First available namespace |
Name of the namespace to use. Defaults to the first available namespace if not specified. |
interactive |
true |
If set to true, enables interactive mode. |
skip |
false |
Skips the execution of the goal. |
dev
Aim: The dev goal enables continuous deployment of the application on source code changes with live browser reload.
Usage: mvn payara-cloud:dev
Example:
<plugin>
<groupId>fish.payara.maven.plugins</groupId>
<artifactId>payara-cloud-maven-plugin</artifactId>
<version>${payara.cloud.maven.plugin.version}</version>
<executions>
<execution>
<goals>
<goal>dev</goal>
</goals>
</execution>
</executions>
<configuration>
<applicationPath>${project.build.directory}/${project.build.finalName}.war</applicationPath>
<autoDeploy>true</autoDeploy>
<liveReload>true</liveReload>
<browser>chrome</browser>
<applicationName>myApp</applicationName>
<subscriptionName>mySubscriptionName</subscriptionName>
<namespaceName>myNamespaceName</namespaceName>
</configuration>
</plugin>
Element | Default | Notes |
---|---|---|
applicationPath |
${project.build.directory}/${project.build.finalName}.war |
Path to the application binary. |
autoDeploy |
true |
Enables automatic deployment on file changes. |
liveReload |
true |
Enables live browser reload on deployment. |
browser |
auto detects |
Specifies the browser for live reload. |
applicationName |
${project.artifactId} |
Name of the application. |
subscriptionName |
First available subscription |
Name of the subscription to use. Defaults to the first available subscription if not specified. |
namespaceName |
First available namespace |
Name of the namespace to use. Defaults to the first available namespace if not specified. |
interactive |
true |
If set to true, enables interactive mode. |
skip |
false |
Skips the execution of the goal. |
list-subscriptions
- Aim
-
This goal lists all available subscriptions in Payara Cloud.
- Usage
-
mvn payara-cloud:list-subscriptions
- Example
<plugin> <groupId>fish.payara.maven.plugins</groupId> <artifactId>payara-cloud-maven-plugin</artifactId> <version>${payara.cloud.maven.plugin.version}</version> <executions> <execution> <goals> <goal>list-subscriptions</goal> </goals> </execution> </executions> </plugin>
Element | Default | Notes |
---|---|---|
interactive |
true |
If set to true, enables interactive mode. |
skip |
false |
Skips the execution of the goal. |
list-namespaces
- Aim
-
This goal lists all available namespaces in Payara Cloud.
- Usage
-
mvn payara-cloud:list-namespaces
- Example
<plugin> <groupId>fish.payara.maven.plugins</groupId> <artifactId>payara-cloud-maven-plugin</artifactId> <version>${payara.cloud.maven.plugin.version}</version> <executions> <execution> <goals> <goal>list-namespaces</goal> </goals> </execution> </executions> <configuration> <subscriptionName>mySubscriptionName</subscriptionName> </configuration> </plugin>
Element | Default | Notes |
---|---|---|
subscriptionName |
First available subscription |
Name of the subscription to use. Defaults to the first available subscription if not specified. |
interactive |
true |
If set to true, enables interactive mode. |
skip |
false |
Skips the execution of the goal. |
list-applications
- Aim
-
This goal lists all deployed applications in Payara Cloud.
- Usage
-
mvn payara-cloud:list-applications
- Example
<plugin> <groupId>fish.payara.maven.plugins</groupId> <artifactId>payara-cloud-maven-plugin</artifactId> <version>${payara.cloud.maven.plugin.version}</version> <executions> <execution> <goals> <goal>list-applications</goal> </goals> </execution> </executions> <configuration> <subscriptionName>mySubscriptionName</subscriptionName> <namespaceName>myNamespaceName</namespaceName> </configuration> </plugin>
Element | Default | Notes |
---|---|---|
subscriptionName |
First available subscription |
Name of the subscription to use. Defaults to the first available subscription if not specified. |
namespaceName |
First available namespace |
Name of the namespace to use. Defaults to the first available namespace if not specified. |
interactive |
true |
If set to true, enables interactive mode. |
skip |
false |
Skips the execution of the goal. |