Plugin Documentation

Goals available for this plugin:

Goal Description
beanstalk:abort-environment-update Aborts Environment Update See the docs for the AbortEnvironmentUpdate API call.
beanstalk:bind-domains

Binds an Elastic Beanstalk Environment into a set of Route53 records

NOTE: THIS IS HIGHLY EXPERIMENTAL CODE

beanstalk:blue-green

Implements Bluegreen Deployment

beanstalk:check-availability Checks the availability of a CNAME. See the CheckDNSAvailability API call.
beanstalk:clean-previous-versions Deletes application versions, either by count and/or by date old
beanstalk:codecommit-fast-deploy Uploads a packed war file to Amazon S3 for further Deployment.
beanstalk:create-application Creates an Application See the CreateApplication API call.
beanstalk:create-application-version Creates an Application Version, optionally creating the application itself. See the CreateApplicationVersion API call.
beanstalk:create-configuration-templates Describes Available Configuration Templates
beanstalk:create-environment Creates and Launches an Elastic Beanstalk Environment

See the docs for the CreateEnvironment API call.

beanstalk:create-storage-location Creates a Storage Location (for logs) See the docs for the CreateStorageLocation API call.
beanstalk:delete-application Deletes an Application See the docs for the DeleteApplication API call.
beanstalk:delete-application-version Deletes an Application Version See the docs for DeleteApplicationVersion API call.
beanstalk:delete-configuration-template Delete Configuration Template
beanstalk:delete-multiparts Uploads a packed war file to Amazon S3 for further Deployment.
beanstalk:describe-application-versions Describe Existing Application Versions See the DescribeApplicationVersions API call.
beanstalk:describe-configuration-options Returns the Configuration Settings See the DescribeConfigurationOptions API call.
beanstalk:describe-configuration-settings Returns the Configuration Settings See the DescribeConfigurationSettings API call.
beanstalk:describe-configuration-templates Describes Available Configuration Templates
beanstalk:describe-environment-resources Describe Environment Resources See the docs for DescribeEnvironmentResources API call.
beanstalk:describe-environments Describe running environments See the docs for the DescribeEnvironments API call.
beanstalk:dump-environment-settings Dumps the current Environment Settings into stdout or an output file (a java properties file) TODO: Export to .ebextensions file format
beanstalk:dump-instances Dump Environment Instance Addresses See the docs for DescribeEnvironmentResources API call.
beanstalk:expose-security-credentials Exposes (i.e., copies) the security credentials from settings.xml into project properties

You can define the server, or not. If you don't, it will work if you did something like that

<configuration>
  <exposes>
    <expose>
      <serverId>${beanstalk.serverId}</serverId>
      <accessKey>aws.accessKey</accessKey>
      <secretKey>aws.accessKey</secretKey>
    </expose>
  </exposes>
</configuration>

While it might look silly (and silly enough to get its own Plugin instead of beanstalker), it power comes when combined with the Properties Maven Plugin

beanstalk:fast-deploy Uploads a packed war file to Amazon S3 for further Deployment.
beanstalk:help Display help information on beanstalk-maven-plugin.
Call mvn beanstalk:help -Ddetail=true -Dgoal=<goal-name> to display parameter details.
beanstalk:list-configuration-templates Describes Available Configuration Templates
beanstalk:list-stacks Lists the available solution stacks See the docs for the ListAvailableSolutionStacks API call.
beanstalk:put-environment Creates (if needed) or Updates an Elastic Beanstalk Environment

See the docs for the CreateEnvironment API call.

beanstalk:rebuild-environment Rebuilds an Environment See the docs for the RebuildEnvironment API call.
beanstalk:replace-environment Launches a new environment and, when done, replace with the existing, terminating when needed. It combines both create-environment, wait-for-environment, swap-environment-cnames, and terminate-environment
beanstalk:request-environment-info Returns Environment Info See the docs for RequestEnvironmentInfo API call.
beanstalk:restart-application-server Restarts the Application Server See the docs for the RestartAppServer API call.
beanstalk:retrieve-environment-info Returns Environment Info See the docs for RetrieveEnvironmentInfo API call.
beanstalk:rollback-version Deletes application versions, either by count and/or by date old
beanstalk:set-property Sets a System Property in a Running Environment
beanstalk:show-security-credentials

Shows the IAM security credentials from settings.xml into project properties

See for more information

beanstalk:swap-environment-cnames Lists the available solution stacks See the docs for the SwapEnvironmentCNAMEs API call.
beanstalk:tag-environment

Tags an Environment

Defaults to environmentRef-yyyyMMdd-nn, where 'nn' is incremented according to availability.

beanstalk:terminate-environment Terminates the Environment See the docs for TerminateEnvironment API call.
beanstalk:update-application-version Updates an Application Version See the CreateApplicationVersion API call.
beanstalk:update-configuration-templates Describes Available Configuration Templates
beanstalk:update-environment Updates the environment versionLabel for a given environmentName

See the UpdateEnvironment API call.

beanstalk:update-environment-options Updates the environment configuration (optionsSettings / optionsToRemove) See the UpdateEnvironment API call.
beanstalk:upload-source-bundle Uploads a packed war file to Amazon S3 for further Deployment.
beanstalk:wait-for-environment Waits for Environment Status to Change

System Requirements

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

Maven 2.0
JDK 1.8
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>br.com.ingenieux</groupId>
          <artifactId>beanstalk-maven-plugin</artifactId>
          <version>1.5.6</version>
        </plugin>
        ...
      </plugins>
    </pluginManagement>
    <!-- To use the plugin goals in your POM or parent POM -->
    <plugins>
      <plugin>
        <groupId>br.com.ingenieux</groupId>
        <artifactId>beanstalk-maven-plugin</artifactId>
        <version>1.5.6</version>
      </plugin>
      ...
    </plugins>
  </build>
  ...
</project>

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