N.B. To build JMeter from a release you need both the binary and source archives,
and these must be unpacked into the same directory structure.
[The required external jars are only included in the binary release]
To build JMeter from source:
ant [install]
To rebuild:
ant clean install
To update documentation
ant docs-site
ant docs-printable
To build API documentation (Javadoc)
ant docs-api
To build all the docs
ant docs-all
To build all and package up the files for distribution
ant distribution -Djmeter.version=vvvv [-Dsvn.revision=nnnnn]
To create a nightly build (separate bin/src/lib jars):
ant nightly [-Dsvn.revision=nnnnn]
To create tar and tgz of the web-site documentation (docs and api)
ant site [ -Djmeter.version=vvvv ]
For more info:
ant -projecthelp
To diagnose usage of deprecated APIs:
ant -Ddeprecation=on clean compile
classpath="${findbugs.homedir}/lib/findbugs-ant.jar"
classname="edu.umd.cs.findbugs.anttask.FindBugsTask"/>
output="xml:withMessages"
reportlevel="${findbugs.level}"
excludeFilter="fb-excludes.xml"
jvmargs="-Xms512m -Xmx512m"
outputFile="${findbugs.outName}.xml" >
force="true"
in="${findbugs.outName}.xml"
out="${findbugs.outName}.csv">
force="true"
in="${findbugs.outName}.xml"
out="${findbugs.outName}_${findbugs.xslname}.html">
value="${jmeter.version} r${svn.revision}" else="${jmeter.version}">
jmeter.version = ${jmeter.version}
display.version = ${display.version}
implementation.version = ${implementation.version}
svn.revision = ${svn.revision}
jmeter.version = ${jmeter.version}
display.version = ${display.version}
implementation.version = ${implementation.version}
eclipse.anakia = ${eclipse.anakia}
AnakiaTask is not present, documentation will not be generated.
Velocity version appears to be older than 1.5: the documentation may be generated with incorrect line endings.
Updating version string to "${display.version}"
match="VERSION = ".*?""
replace="VERSION = "${display.version}""/>
description="Compile components specific to LDAP sampling.">
description="Compile components specific to IMAP and POP3 sampling.">
description="Compile report components.">
depends="compile-jorphan,compile-core,compile-components,compile-monitor-model">
description="Compile components specific to JMS sampling.">
depends="_message_3rdParty,compile-core,compile-components,compile-functions,compile-protocols,compile-rmi,compile-monitor,compile-junit,compile-jms,compile-report"
description="Compile everything."/>
description="Compile everything and create the jars"/>
includes="**/NewDriver*,**/DynamicClassLoader*,**/ShutdownClient.class"
basedir="${build.core}"
manifest="${build.dir}/MANIFEST_BIN.MF">
manifest="${build.dir}/MANIFEST_BIN.MF">
excludes="**/BeanShellClient*.class,**/NewDriver*,**/DynamicClassLoader*"/>
excludes="**/*.properties"/>
Cannot find all the required 3rd party libraries.
If building from a release, you need both source and binary archives.
value="${dest.jar.jmeter}/jmeter ${dest.jar.jmeter}/jmeter-server ${dest.jar.jmeter}/*.sh"/>
Copying files to work directory ${workdir}
Converting work files to eol=${eoltype}
depends="svnCheck,check-versions,clean,install,docs-printable,docs-api,test,_distribution"
description="Build JMeter for end-user distribution"/>
name="nightly"
depends="init-svnVersion,check-versions,package,docs-printable,pack-nightly"
description="Build JMeter for nightly dir (package docs-printable pack-nightly)"/>
Creating JMeter distribution ${dist.name} ${svn.revision}
depends="_gump_properties,clean,install"
description="Build JMeter">
depends="_gump_properties,clean,compile"
description="Compile JMeter only">
depends="_gump_properties,compile-tests,_test"
description="Test JMeter in Gump">
usrMD5 = ${usrMD5}
x1MD5 = ${x1MD5}
depends="_gump_properties,docs-api"
description="Create JMeter javadocs">
Gump properties for this run
jmeter.version = ${jmeter.version}
gump.run = ${gump.run}
date.projectfile = ${date.projectfile}
version.projectfile = ${version.projectfile}
Build file:
version.build = ${version.build}
Java properties:
target.java.version = ${target.java.version}
src.java.version = ${src.java.version}
optimize = ${optimize}
deprecation = ${deprecation}
encoding = ${encoding}
Updating overview to ${docversion}
replace="version ${docversion}"
flags="g" byline="true">
sourcepathref="srcpaths"
overview="${src.docs}/overview.html"
additionalparam="-breakiterator"
destdir="${dest.docs.api}"
protected="yes"
version="yes"
doctitle="Apache JMeter API"
windowtitle="Apache JMeter API"
header="<b>Apache JMeter</b>"
bottom="Copyright © 1998-${THISYEAR} Apache Software Foundation. All Rights Reserved."
packagenames="org.apache.jmeter.*,org.apache.jorphan.*"
excludepackagenames="org.apache.jorphan.timer">
destdir="reports"
docletpath="${lib.opt}/doccheck.jar"
packagenames="org.apache.jmeter.*,org.apache.jorphan.*"
excludepackagenames="org.apache.jmeter.util.keystore,org.apache.jorphan.timer">
excludes="**/stylesheets/** extending.xml extending/*.xml"
includes="**/*.xml" lastModifiedCheck="true" velocityPropertiesFile="${src.docs}/velocity.properties"/>
Fixing EOL
Copying files
excludes="**/stylesheets/** extending.xml extending/*.xml"
includes="**/*.xml" lastModifiedCheck="true" velocityPropertiesFile="${src.docs}/velocity.properties"/>
Fixing EOL
Copying files
description="Run tests (use -Djava.awt.headless=true on systems without graphic displays)"/>
Error detected in server log file. See above.
CSV Files are not identical.
XML Files are not identical.
${batchtest.name} output files compared OK
Error detected in log file. See above.
gump.run = ${gump.run}
java.awt.headless = ${java.awt.headless}
test.headless = ${test.headless}
user.dir = ${user.dir}
basedir = ${basedir}
test dir = ${build.test}
test dir gump = ${build.test.gump}
testsaveservice.saveout = ${testsaveservice.saveout}
dir="${basedir}/bin"
showoutput="true"
printsummary="withOutAndErr">