| <!DOCTYPE html SYSTEM "about:legacy-compat"> |
| <html lang="en"><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-15"><title>Apache JMeter |
| - |
| Building and Contributing to JMeter</title><meta name="viewport" content="width=device-width, initial-scale=1"><link href="http://fonts.googleapis.com/css?family=Merriweather:400normal" rel="stylesheet" type="text/css"><link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.6.1/css/font-awesome.min.css" rel="stylesheet" type="text/css"><link rel="stylesheet" type="text/css" href="./css/new-style.css"><link rel="apple-touch-icon-precomposed" href="./images/apple-touch-icon.png"><link rel="icon" href="./images/favicon.png"><meta name="msapplication-TileColor" content="#ffffff"><meta name="msapplication-TileImage" content="./images/mstile-144x144.png"><meta name="theme-color" content="#ffffff"></head><body role="document"><a href="#content" class="hidden">Main content</a><div class="header"><!-- |
| APACHE LOGO |
| --><div><a href="http://www.apache.org"><img title="Apache Software Foundation" class="asf-logo logo" src="./images/asf-logo.svg" alt="Logo ASF"></a></div><!-- |
| PROJECT LOGO |
| --><div><a href="http://jmeter.apache.org/"><img class="logo" src="./images/logo.svg" alt="Apache JMeter"></a></div><div class="banner"><iframe src="http://www.apache.org/ads/bannerbar.html" style="border-width:0;" frameborder="0" scrolling="no"></iframe><div class="clear"></div></div></div><div class="nav"><ul class="menu"><li onClick="return true"><div class="menu-title">About</div><ul><li><a href="./index.html">Overview</a></li><li><a href="http://www.apache.org/licenses/">License</a></li></ul></li></ul><ul class="menu"><li onClick="return true"><div class="menu-title">Download</div><ul><li><a href="./download_jmeter.cgi">Download Releases</a></li><li><a href="./changes.html">Release Notes</a></li></ul></li></ul><ul class="menu"><li onClick="return true"><div class="menu-title">Documentation</div><ul><li><a href="./usermanual/get-started.html">Get Started</a></li><li><a href="./usermanual/index.html">User Manual</a></li><li><a href="./usermanual/best-practices.html">Best Practices</a></li><li><a href="./usermanual/component_reference.html">Component Reference</a></li><li><a href="./usermanual/functions.html">Functions Reference</a></li><li><a href="./changes_history.html">Change History</a></li><li><a href="./api/index.html">Javadocs</a></li><li><a href="./building.html">Building JMeter and Add-Ons</a></li><li><a href="http://wiki.apache.org/jmeter">JMeter Wiki</a></li><li><a href="http://wiki.apache.org/jmeter/JMeterFAQ">FAQ (Wiki)</a></li></ul></li></ul><ul class="menu"><li onClick="return true"><div class="menu-title">Tutorials (PDF format)</div><ul><li><a href="./usermanual/jmeter_distributed_testing_step_by_step.pdf">Distributed Testing</a></li><li><a href="./usermanual/jmeter_proxy_step_by_step.pdf">Recording Tests</a></li><li><a href="./usermanual/junitsampler_tutorial.pdf">JUnit Sampler</a></li><li><a href="./usermanual/jmeter_accesslog_sampler_step_by_step.pdf">Access Log Sampler</a></li><li><a href="./extending/jmeter_tutorial.pdf">Extending JMeter</a></li></ul></li></ul><ul class="menu"><li onClick="return true"><div class="menu-title">Community</div><ul><li><a href="./issues.html">Issue Tracking</a></li><li><a href="./mail.html">Mailing Lists</a></li><li><a href="./svnindex.html">Source Repositories</a></li><li><a href="./building.html">Building and Contributing</a></li><li><a href="https://projects.apache.org/project.html?jmeter">Project info at Apache</a></li><li><a href="http://wiki.apache.org/jmeter/JMeterCommitters">Contributors</a></li></ul></li></ul><ul class="menu"><li onClick="return true"><div class="menu-title">Foundation</div><ul><li><a href="http://www.apache.org/">ASF</a></li><li><a href="http://www.apache.org/foundation/getinvolved.html">Get Involved in the ASF</a></li><li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li><li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li></ul></li></ul></div><div class="main" id="content"><div class="social-media"><ul class="social-media-links"><li class="twitter"><a href="https://twitter.com/ApacheJMeter" title="Follow us on Twitter"><i class="fa fa-twitter" aria-hidden="true"></i>Twitter</a></li><li class="github"><a href="https://github.com/apache/jmeter" title="Fork us on github"><i class="fa fa-github" aria-hidden="true"></i>github</a></li></ul></div><div class="section"><h1>Building JMeter</h1> |
| <h3>Acquiring the source</h3> |
| <p>The full source is distributed alongside the binary, and you can also find source repositories <a href="./svnindex.html">here</a> .</p> |
| <p> |
| The source archive, SVN and GIT do not contain any of the required library files. |
| |
| <h3>Compiling and packaging JMeter using Eclipse</h3> |
| <h4>Option 1 : Setting up Eclipse project with Ant task</h4> |
| Once you have downloaded the sources using git or svn, you can setup the Eclipse project by running: |
| |
| <pre class="source">ant setup-eclipse-project</pre> |
| |
| You can then import the project using |
| <span class="menuchoice"><span class="guimenuitem">File</span> → <span class="guimenuitem">Import</span> → <span class="guimenuitem">Existing projects into Workspace</span></span> and select the folder containing JMeter sources. |
| |
| <h4>Option 2 : Setting up Eclipse project manually</h4> |
| The first step is to download dependencies by running the Ant command:</p> |
| <pre class="source"> |
| ant download_jars |
| </pre> |
| <p>Or you can download the binary distribution archive for a release and unpack it into the same directory structure as the source. |
| This will ensure that the <span class="code">lib/</span> directory contains the jar files needed for running JMeter. |
| There are a few additional jars that are needed to build JMeter, download these using: |
| </p> |
| <pre class="source"> |
| ant download_jars |
| </pre> |
| <p> |
| This will retrieve any missing jars. |
| </p> |
| |
| <p> |
| Once you have downloaded the source from SVN or the release archives and run the ant <span class="code">download_jars</span> target to |
| install the dependent jars, you can configure Eclipse. The easiest way to do this is to replace the Eclipse <span class="code">.classpath</span> |
| file with the <span class="code">eclipse.classpath</span> file provided with JMeter. This will set up the source-paths and most of the libraries. |
| </p> |
| <p> |
| Ensure you read <span class="code">eclipse.readme</span> for project configuration. |
| </p> |
| |
| |
| <h3>Compiling and packaging JMeter using Ant</h3> |
| <p> |
| JMeter can be built entirely using Ant. |
| The basic command is:</p> |
| <pre class="source"> |
| ant [install] |
| </pre> |
| See <span class="code">build.xml</span> (or call <span class="code">ant -p</span>) for the other targets that can be used. |
| |
| </div><div class="section"><h1>Contributing to JMeter</h1> |
| <h2>We love contribution</h2> |
| We are very grateful to you if you take some time to contribute to the project. |
| If you have some time to spend on the project you can pick existing enhancement or bug from <a target="_blank" href="issues.html">Issues page</a>. |
| |
| <h2>Submitting a patch</h2> |
| |
| If you want to contribute to JMeter for a bug fix or enhancement, here is the procedure to follow: |
| |
| <h3>Check your patch</h3> |
| Before submitting your patch ensure you do the following:<br> |
| |
| Check that patch compiles and follows Tab space policy by running: |
| <pre class="source">ant package-and-check</pre> |
| |
| Check that patch does not break JUnit tests by running: |
| <pre class="source">ant test</pre> |
| |
| <h3>Create a PR using GIT</h3> |
| <ul> |
| <li>Open a bugzilla issue, see <a target="_blank" href="issues.html">Issues page</a></li> |
| <li>Fork <a href="https://www.github.com/apache/jmeter">Apache JMeter mirror</a></li> |
| <li>Clone your forked repository locally : <pre class="source">git clone https://github.com/yourid/jmeter/</pre></li> |
| <li>Create a branch using for example bugzilla id: <pre class="source">git branch BUGID</pre></li> |
| <li>Checkout the new branch : <pre class="source">git checkout BUGID</pre></li> |
| <li>commit your fix there : <pre class="source">git commit -m 'Fix to BUGID' list of files</pre></li> |
| <li>Add JMeter repository as upstream : <pre class="source">git remote add upstream http://www.github.com/apache/jmeter</pre></li> |
| <li>push it : <pre class="source">git push origin BUGID</pre></li> |
| <li>Create a PR and link it in the bugzilla issue</li> |
| </ul> |
| |
| <h3>Create a PR using Patch</h3> |
| <ul> |
| <li>Open a bugzilla issue, see <a target="_blank" href="issues.html">Issues page</a></li> |
| <li>Checkout Apache JMeter source</li> |
| <li>Code your fix</li> |
| <li>Create your patch by Right clicking on Eclipse project and select |
| <span class="menuchoice"><span class="guimenuitem">Team</span> → <span class="guimenuitem">Create Patch …</span></span></li> |
| <li>Attach your patch to the bugzilla issue</li> |
| </ul> |
| </div><div class="section"><h1>Automated builds</h1> |
| <h2>Automated (nightly) builds</h2> |
| <p> |
| As part of the development process, the JMeter project has access to various Continuous Integration (CI) server builds. |
| The build output can be useful for testing recent changes to the code-base. |
| </p> |
| <p> |
| Please note that the builds have not undergone any QA and should only be used for development testing. |
| For further information, see the <a href="nightly.html">Nightly builds for developers</a> page. |
| </p> |
| </div><div class="section"><h1>Building Add-Ons</h1> |
| <h2>Building Add-Ons</h2> |
| <p> |
| There is no need to build JMeter if you just want to build an add-on. |
| Just download the binary archive and add the jars to the classpath or use Maven artifacts to build your add-ons. |
| You may want to also download the source so it can be used by the IDE. |
| </p> |
| <p>See the <span class="code">extras/addons*</span> files in the source tree for some suggestions</p> |
| </div><div class="share-links"> |
| Share this page: |
| <ul><li class="fb"><a data-social-url="https://facebook.com/sharer/sharer.php?u=" title="Share on facebook"><i class="fa fa-facebook" aria-hidden="true"></i>share</a></li><li class="twitter"><a data-social-url="https://twitter.com/intent/tweet?url=" title="Tweet on twitter"><i class="fa fa-twitter" aria-hidden="true"></i>tweet</a></li><li class="gplus"><a data-social-url="https://plus.google.com/share?url=" title="Share on Google+"><i class="fa fa-google-plus" aria-hidden="true"></i>share</a></li></ul></div></div><div class="footer"><div class="copyright"> |
| Copyright © |
| 1999 – |
| 2016 |
| , Apache Software Foundation |
| </div><div class="trademarks">Apache, Apache JMeter, JMeter, the Apache |
| feather, and the Apache JMeter logo are |
| trademarks of the |
| Apache Software Foundation. |
| </div></div><script>(function(){ |
| // fill in the current location into social links on this page. |
| "use strict"; |
| var as = document.getElementsByTagName('a'); |
| var loc = document.location.href; |
| if (!loc.toLowerCase().startsWith('http')) { |
| return; |
| } |
| for (var i=0; i<as.length; i++) { |
| var href = as[i].getAttribute('data-social-url'); |
| if (href !== null) { |
| as[i].href = href + encodeURIComponent(loc); |
| } |
| } |
| })();</script></body></html> |