ControlTier > elements
 

MavenBuilder

A simple Builder to interface with Maven

Overview

MavenBuilder: A simple Builder to interface with Maven

Intent

Provide a standard interface to automate Maven integrated builds.

  • Automate enviornment and configuration setup.
  • Expose maven options and arguments into the ControlTier object model for automating each build.
  • Support automated builds within a Continuous Integration (CI) Loop such as Hudson or CruiseControl.
  • Support additional Continuous Deployment as part of a CI Loop in order to automate end to end build and deployment within a development environment.

Problem

Automating builds require command line parameters, environment, supporting infrastructure, and configuration. Setting up an automated build is different than a developer's envioronment in that pure command line and environment must be explicit and managed for change. Exposing all of these configurations including any referring CI deployed tool must be coherently managed.

Design

Super Type
Builder
Role Concrete. (Objects can be created.)
Instance Names Unique
Notification false
Template Directory
Data View Bi-directional, proximity: 1
Logger Name Builder

Constraints

Allowed Child Dependencies

1: These types have a Singleton constraint. Only one instance may be added as a resource.

Allowed Parent Dependencies

Limit referring CruiseControl and Hudson objects for Continous Integration (CI) automated builds.

Allow referring Updater's for optional automatic deployments within a CI loop.

Support Node based deployments

Attributes

Exported Attributes

Name Property Description
basedir deployment-basedir the "checkout" workspace of the maven enabled build
targetdir deployment-install-root the "target" directory containing artifact(s) produced by maven enabled build

Defaults for Imported Attributes

Name Default Description
autoUpdate false turn on automatic deployments when integrated within a Continuous Integration Loop (typical for development environments), defaults to false
buildFile pom.xml maven buildfile, defaults to "pom.xml"
buildPath /bin:/usr/bin PATH environment used for the build, defaults to a typical unix environment
buildTarget all maven build target, defaults to "all"
cruiseControlInterval 300 Continuous Integration build interval via cruisecontrol, defaults to 300 seconds
hudsonPollSpec */5 * * * * Continuous Integration build interval hudson, defaults to 5 minutes (cron based format)
hudsonPollSpec */5 * * * *
importMax 1 maximum number of packages to import into the controltier package repository, defaults to 1
importMin 1 minimum number of packages to import into the controltier package repository, defaults to 1
javaHome ${env.JAVA_HOME} value for JAVA_HOME (root of the jdk install), defaults to JAVA_HOME environment variable
mavenHome ${env.MAVEN_HOME} value for MAVEN_HOME (root of the maven install), defaults to MAVEN_HOME environment variable
mavenOpts optional value for MAVEN_OPTS passed into the maven build
packageBuildtimePattern yyyyMMdd'T'HHmmss
packageExtension war package filename extension of the produced artifact, defaults to the "war"
packageFilebase .*? basename of the produced artifact filename (precedes the packageSeparator character), defaults to the ".*?" regular expression
packageInstallRank 10 default installation for artifactobject's package object and used at deployment time.
packageInstallroot ${entity.attribute.catalinaBase}/webapps target installation root for the produced artifact when deployed, defaults to the webapps directory of a tomcat container
packageSeparator - separator in produced filename of the artifact differentiating the package name from the version of the package, defaults to the "-" character
packageType war package type for the produced artifact when imported into the controltier package repository, defaults to the war package type
requireBuildstamp false enforce use of the buildstamp command line parmeter, defaults to false
scmBinding cvs source code management binding, defaults to cvs
scmLabel optional label to apply prior to checkout from source
scmUser ${user.name} user name for interacting with the source code managmement system, defaults to the effective user

Commands

View the available commands in the User Reference.

Related Types

The following types are defined for use with MavenBuilder.

BuilderMavenHome

Overview

BuilderMavenHome: Maven instance that should be used

supports the "mavenHome" attribute setting, where settingValue will override the referring attribute-default (if defined). See use of "MAVEN_HOME" environment variable and Maven documentation.

Design

Super Type
BuilderSetting
Role Concrete. (Objects can be created.)
Instance Names Unique

Attributes

Exported Attributes
Name Property
mavenHome settingValue

BuilderMavenOpts

Overview

BuilderMavenOpts: Maven options that should be used

supports the "mavenOpts" attribute setting, where settingValue will override the referring attribute-default (if defined). See use of "MAVEN_OPTS" environment variable and Maven documentation.

Design

Super Type
BuilderSetting
Role Concrete. (Objects can be created.)
Instance Names Unique

Attributes

Exported Attributes
Name Property
mavenOpts settingValue

BuilderNotificationList

Overview

BuilderNotificationList: Comma separated list of email addresses to be notified about the build

Design

Super Type
BuilderSetting
Role Concrete. (Objects can be created.)
Instance Names Unique

Attributes

Exported Attributes
Name Property
notificationList settingValue

BuilderScmCheckExternal

Overview

BuilderScmCheckExternal: Subversion specific external definition to check for last changed revision

Design

Super Type
BuilderSetting
Role Concrete. (Objects can be created.)
Instance Names Unique

Attributes

Exported Attributes
Name Property
scmCheckExternal settingValue

BuilderVersionBuild

Overview

BuilderVersionBuild: Build version number to use to generate a buildstamp (often pulled from Subversion, etc)

Design

Super Type
BuilderSetting
Role Concrete. (Objects can be created.)
Instance Names Unique

Attributes

Exported Attributes
Name Property
versionBuild settingValue

BuilderVersionMajor

Overview

BuilderVersionMajor: Major version number to use to generate a buildstamp

Design

Super Type
BuilderSetting
Role Concrete. (Objects can be created.)
Instance Names Unique

Attributes

Exported Attributes
Name Property
versionMajor settingValue

BuilderVersionMinor

Overview

BuilderVersionMinor: Minor version number to use to generate a buildstamp

Design

Super Type
BuilderSetting
Role Concrete. (Objects can be created.)
Instance Names Unique

Attributes

Exported Attributes
Name Property
versionMinor settingValue

BuilderVersionRelease

Overview

BuilderVersionRelease: Release version number to use to generate a buildstamp

Design

Super Type
BuilderSetting
Role Concrete. (Objects can be created.)
Instance Names Unique

Attributes

Exported Attributes
Name Property
versionRelease settingValue