BuildType build-webapp-java v0.1


Overview

A standard build for webapp java modules, relying on standard phases, and providing compilation, execution and unit tests

Plugins

This build type loads each of the following plugins:

Build Phases

This build type takes the following actions during each build phase:

PhaseTargetDescriptionFrom Plugin
clean: delete any artifacts from previous builds
clean:cleanclean projectclean-std
validate: validate the project is correct and all necessary information is available
clean:initclean-std
lib:initivy-provisioning
publish:initivy-publication
ivy:initivy-utils
resources:initresources-std
compile:initcompile-java
compile-test:abstract-compile-test-java:initabstract-test
manifest:initmanifest
war:initpackage-war
provision: supply provision required by this project
lib:resolveresolve and retrieve dependencies with ivyivy-provisioning
process-resources: copy and process the resources into the destination directory, ready for packaging
resources:copy-resourcesresources-std
compile: compile the source code of the project
compile:compilecompile-java
test-process-resources: copy and process the resources into the test destination directory
resources:copy-test-resourcesresources-std
test-compile: compile the test source code into the test destination directory
compile-test:compilecompile-test-java
prepare-package: perform any operations necessary to prepare a package before the actual packaging. This often results in an unpacked, processed version of the package
manifest:manifestgenerate manifest filemanifest
manifest:manifest-runnableadd manifest attributes required for an executable jarmanifest
package: take the compiled code and package it in its distributable format, such as a JAR.
war:warpackage project as a WARpackage-war
generate-local-version: generate a local version number
publish-local-versionivy-publication
generate-shared-version: generate a version number for shared publication
publish-shared-versionivy-publication
generate-release-version: generate a version number for a release
publish-release-versionivy-publication
publish-local: publish the package into the local repository, for use as a dependency in other projects locally
publish:publish-localivy-publication
publish-shared: done in an integration environment, copies the final package to the remote repository for sharing with other developers and projects
publish:publish-sharedivy-publication
release: done in an integration or release environment, copies the final package to the remote repository for sharing with other developers and projects
publish:releaseivy-publication
report: generate report
ivy:reportgenerate dependencies reportivy-utils

Extra Targets

This type defines some extra Ant targets not attached to any build phase:

TargetDescriptionFrom Plugin
lib-resolveivy-provisioning
lib-resolve-main-confsivy-provisioning
lib-resolve-test-confsivy-provisioning
lib-resolve-provided-confsivy-provisioning
publish:clean-localcleans the local repositoryivy-publication
publishdoitivy-publication
ivy:clean-cacheclean the ivy cache used to resolve project dependenciesivy-utils
ivy:clean-eacacheclean the ivy cache used by easyant to resolve plugins/ buildtypesivy-utils
ivy:clean-libclean the project libraries directoryivy-utils
ivydoitivy-utils
resourcesdoitresources-std
compiledoitcompile-java
manifest-generate-version-numbermanifest
manifestdoitmanifest
wardoitpackage-war

Parameters

The following property values can be changed to tune the behavior of this buildtype.
Required parameters must be defined upon import, or the build will fail.

ParameterRequired?DescriptionDefaultBuildType Value
compile.java.excludes.patternNoPattern describing files excluded in compilation process
compile.java.includes.patternNoPattern describing files included in compilation process**/*.java
compile.java.source.versionNoSpecify a value of the -source command-line switch; will be ignored by all implementations prior to javac1.4 (or modern when Ant is not running in a 1.3 VM) and jikes${ant.java.version}
compile.java.target.versionNoSpecify a VM version for Generated class files (e.g., 1.1 or 1.2).${ant.java.version}
default.build.numberNodefault project version1
fail.publication.if.no.revisionNofail build if current module has no revision in 'info' tag of the module.ivytrue
ivy.haltonmissingNodefines if ivy must halt when artifact is missingtrue
ivy.moduleNothe name of the project, used to fill the Specification-Title and Implementation-Title in the manifest
ivy.organisationNothe name of the organisation that is the owner of this module, used to fill the Specification-Vendor and Implementation-Vendor in the manifest
ivy.revisionNothe revision of the project, used to fill the Specification-Version and Implementation-Version in the manifest
javac.debug.modeNojavac debug mode, true or falsetrue
lib.mainYesdirectory where main libraries are picked up${basedir}/lib/main
lib.providedYesdirectory where provided libraries are picked up${basedir}/lib/provided
lib.testYesdirectory where test libraries are picked up${basedir}/lib/test
main.confsNoconfs used for main librairiesdefault
manifest.classpathNoIf manifest.main.classname is defined, this will be used for the Class-Path attribute. by default this will be automatically computed from the Ivy dependencies of the target artifact.
manifest.fileNothe manifest-file to create/update.${target}/MANIFEST.MF${target}/MANIFEST.MF
manifest.main.classnameNoIf defined, Main-Class and Class-Path attributes are added to produce an executable jar file.
module.nameNo${ivy.module}
package.metainf.basedirNobasedir of the metainf fileset${basedir}
package.metainf.excludes.patternNoPattern describing files excluded in the META-INF of the package
package.metainf.includes.patternNoPattern describing files included in the META-INF of the packageNOTICE,LICENSE
package.war.excludes.patternNoPattern describing files excluded in the output war
package.war.includes.patternNoPattern describing files included in the output war**/*
package.war.needxmlfileNoFlag to indicate whether or not the web.xml file is needed. Iit should be set to false when generating servlet 2.5+ WAR files without a web.xml file.false
package.war.webxml.fileNoThe servlet configuration descriptor to use (WEB-INF/web.xml).
project.ivy.fileYesthe name of the file containing dependencies of your project${easyant.file}
project.ivy.instanceNothe ivy instance name for your projectproject.ivy.instance
project.ivy.settings.fileNothe ivysettings file used by your project
project.ivy.settings.urlNothe ivysettings url used by your project
provided.confsNoconfs used for provided librairiesprovided
release.resolverNothe name of the resolver use for release publicationshared
resources.std.excludes.patternNoPattern describing files excluded in compilation process
resources.std.includes.patternNoPattern describing files included in compilation process**/*
resources.std.test.excludes.patternNoPattern describing files excluded in test compilation process
resources.std.test.includes.patternNoPattern describing files included in test compilation process**/*
retrieve.dependenciesNodefines if dependencies should be retrieve dependencies in the lib directoryfalse
retrieve.pattern.lib.mainNoretrieve pattern for main artifacts${lib.main}/[artifact]-[revision].[ext]
retrieve.pattern.lib.providedNoretrieve pattern for provided artifacts${lib.provided}/[artifact]-[revision].[ext]
retrieve.pattern.lib.testNoretrieve pattern for test artifacts${lib.test}/[artifact]-[revision].[ext]
revision.separatorNoseparator for version-dev-build
shared.resolverNothe name of the share resolvershared
src.main.javaYesdirectory where sources to be compiled are${basedir}/src/main/java
src.main.resourcesYesdirectory where main resources files are stored${basedir}/src/main/resources
src.main.webappYesdirectory where web resources files are stored (like pages, images, etc...)${basedir}/src/main/webapp
src.test.javaYesdirectory with test source files${basedir}/src/test/java
src.test.resourcesYesdirectory where test resources files are stored${basedir}/src/test/resources
sync.lib.dirNoa boolean that define if lib dir should be synchronized or nottrue
targetYesthe target directory to clean${basedir}/target
target.artifactsYesdestination directory for target artifacts${target}/artifacts
target.artifacts.main.source.jar.nameNo${module.name}-source.jar
target.artifacts.main.war.nameYesmain artifact file name${module.name}.war
target.artifacts.test.source.jar.nameNo${module.name}-test-source.jar
target.main.classesYesdestination directory where main resources should be put${target}/main/classes
target.main.warNo${target}/war
target.reportNo${target}/report
target.report.ivyNothe directory where ivy report will be generated${target.report}/deps-report
target.test.classesYesdestination directory where test resources should be put${target}/test/classes
target.test.htmlYesdestination directory for html test report${target}/test/html
target.test.xmlYesdestination directory for xml test report${target}/test/xml
test.compile.excludes.patternNoPattern describing files excluded in test compilation process
test.compile.includes.patternNoPattern describing files included in test compilation process**/*.java
test.compile.java.source.versionNoSpecify a value of the -source command-line switch; will be ignored by all implementations prior to javac1.4 (or modern when Ant is not running in a 1.3 VM) and jikes${ant.java.version}
test.compile.java.target.versionNoSpecify a VM version for Generated class files (e.g., 1.1 or 1.2).${ant.java.version}
test.confsNoconfs used for test librairiestest
test.frameworkNojunit
test.modeNomode to use to execute tests: 'run' to only run tests, 'report' to generate html reportrun
versionNothe full version of the project
version.properties.fileNothe version.properties file to create/update.${target.main.classes}/META-INF/version.properties