Im currently working on a jmeter based project running the tests using jmeter maven plugin. So far everything works until i\'ve added perfmon plugins, adding them to get Tra
The error you are seeing is because jmeter-plugins depends upon JMeter 2.13 which has a broken maven dependency tree. This is something the jmeter-plugins team needs to fix (they need to release a version of jmeter plugins that depends upon JMeter 3.1).
The build is breaking because the plugin is trying to download some transitive dependencies for jmeter-plugins that don't exist, you can work around this by setting:
<downloadExtensionDependencies>false</downloadExtensionDependencies>
This does however mean that you will need to manually set all the dependencies that jmeter-plugins depends upon in your <jmeterExtensions>
block.
Here is the dependency tree:
[INFO] \- kg.apc:jmeter-plugins-perfmon:jar:2.1:compile
[INFO] +- kg.apc:jmeter-plugins-cmn-jmeter:jar:0.3:compile
[INFO] | +- org.apache.jmeter:jorphan:jar:2.13:compile
[INFO] | | +- bsf:bsf:jar:2.4.0:compile
[INFO] | | +- org.beanshell:bsh:jar:2.0b5:compile
[INFO] | | +- org.bouncycastle:bcmail-jdk15on:jar:1.49:compile
[INFO] | | +- org.bouncycastle:bcprov-jdk15on:jar:1.49:compile
[INFO] | | +- org.bouncycastle:bcpkix-jdk15on:jar:1.49:compile
[INFO] | | +- commons-codec:commons-codec:jar:1.10:compile
[INFO] | | +- commons-collections:commons-collections:jar:3.2.1:compile
[INFO] | | +- commons-httpclient:commons-httpclient:jar:3.1:compile
[INFO] | | +- commons-io:commons-io:jar:2.4:compile
[INFO] | | +- commons-jexl:commons-jexl:jar:1.1:compile
[INFO] | | +- org.apache.commons:commons-jexl:jar:2.1.1:compile
[INFO] | | +- org.apache.commons:commons-lang3:jar:3.3.2:compile
[INFO] | | +- commons-logging:commons-logging:jar:1.2:compile
[INFO] | | +- commons-net:commons-net:jar:3.3:compile
[INFO] | | +- dnsjava:dnsjava:jar:2.1.7:compile
[INFO] | | +- excalibur-datasource:excalibur-datasource:jar:2.1:compile
[INFO] | | | +- hsqldb:hsqldb:jar:1.8.0.1:compile
[INFO] | | | +- avalon-framework:avalon-framework-api:jar:4.3:compile
[INFO] | | | +- avalon-framework:avalon-framework-impl:jar:4.3:compile
[INFO] | | | | +- xml-apis:xmlParserAPIs:jar:2.0.2:compile
[INFO] | | | | \- jmock:jmock:jar:1.0.1:compile
[INFO] | | | +- avalon-logkit:avalon-logkit:jar:2.1:compile
[INFO] | | | | +- javax.servlet:servlet-api:jar:2.3:compile
[INFO] | | | | +- geronimo-spec:geronimo-spec-javamail:jar:1.3.1-rc3:compile
[INFO] | | | | \- geronimo-spec:geronimo-spec-jms:jar:1.1-rc4:compile
[INFO] | | | +- excalibur-instrument:excalibur-instrument-api:jar:2.1:compile
[INFO] | | | +- concurrent:concurrent:jar:1.3.4:compile
[INFO] | | | +- excalibur-component:excalibur-testcase:jar:2.1:compile
[INFO] | | | +- excalibur-component:excalibur-component:jar:2.1:compile
[INFO] | | | | +- excalibur-instrument:excalibur-instrument-mgr-api:jar:2.1:compile
[INFO] | | | | \- excalibur-instrument:excalibur-instrument-mgr-impl:jar:2.1:compile
[INFO] | | | \- qdox:qdox:jar:1.5:compile
[INFO] | | +- excalibur-instrument:excalibur-instrument:jar:1.0:compile
[INFO] | | +- excalibur-logger:excalibur-logger:jar:1.1:compile
[INFO] | | +- excalibur-pool:excalibur-pool-api:jar:2.1:compile
[INFO] | | +- excalibur-pool:excalibur-pool-impl:jar:2.1:compile
[INFO] | | | \- junitperf:junitperf:jar:1.8:compile
[INFO] | | +- excalibur-pool:excalibur-pool-instrumented:jar:2.1:compile
[INFO] | | +- org.htmlparser:htmllexer:jar:2.1:compile
[INFO] | | +- org.htmlparser:htmlparser:jar:2.1:compile
[INFO] | | +- org.apache.httpcomponents:httpclient:jar:4.2.6:compile
[INFO] | | +- org.apache.httpcomponents:httpmime:jar:4.2.6:compile
[INFO] | | +- org.apache.httpcomponents:httpcore:jar:4.2.5:compile
[INFO] | | +- oro:oro:jar:2.0.8:compile
[INFO] | | +- jcharts:jcharts:jar:0.7.5:compile
[INFO] | | +- org.jdom:jdom:jar:1.1.3:compile
[INFO] | | +- org.mozilla:rhino:jar:1.7R5:compile
[INFO] | | +- junit:junit:jar:4.12:compile
[INFO] | | | \- org.hamcrest:hamcrest-core:jar:1.3:compile
[INFO] | | +- soap:soap:jar:2.3.1:compile
[INFO] | | +- net.sf.jtidy:jtidy:jar:r938:compile
[INFO] | | +- org.apache.tika:tika-core:jar:1.7:compile
[INFO] | | +- org.apache.tika:tika-parsers:jar:1.7:compile
[INFO] | | | +- org.gagravarr:vorbis-java-tika:jar:0.6:compile
[INFO] | | | +- edu.ucar:netcdf:jar:4.2.20:compile
[INFO] | | | | \- edu.ucar:unidataCommon:jar:4.2.20:compile
[INFO] | | | | \- net.jcip:jcip-annotations:jar:1.0:compile
[INFO] | | | +- net.sourceforge.jmatio:jmatio:jar:1.0:compile
[INFO] | | | +- org.apache.james:apache-mime4j-core:jar:0.7.2:compile
[INFO] | | | +- org.apache.james:apache-mime4j-dom:jar:0.7.2:compile
[INFO] | | | +- org.apache.commons:commons-compress:jar:1.8.1:compile
[INFO] | | | +- org.tukaani:xz:jar:1.5:compile
[INFO] | | | +- org.apache.pdfbox:pdfbox:jar:1.8.8:compile
[INFO] | | | | +- org.apache.pdfbox:fontbox:jar:1.8.8:compile
[INFO] | | | | \- org.apache.pdfbox:jempbox:jar:1.8.8:compile
[INFO] | | | +- org.bouncycastle:bcmail-jdk15:jar:1.45:compile
[INFO] | | | +- org.bouncycastle:bcprov-jdk15:jar:1.45:compile
[INFO] | | | +- org.apache.poi:poi:jar:3.11:compile
[INFO] | | | +- org.apache.poi:poi-scratchpad:jar:3.11:compile
[INFO] | | | +- org.apache.poi:poi-ooxml:jar:3.11:compile
[INFO] | | | | \- org.apache.poi:poi-ooxml-schemas:jar:3.11:compile
[INFO] | | | | \- org.apache.xmlbeans:xmlbeans:jar:2.6.0:compile
[INFO] | | | +- org.ccil.cowan.tagsoup:tagsoup:jar:1.2.1:compile
[INFO] | | | +- org.ow2.asm:asm-debug-all:jar:4.1:compile
[INFO] | | | +- com.googlecode.mp4parser:isoparser:jar:1.0.2:compile
[INFO] | | | | \- org.aspectj:aspectjrt:jar:1.8.0:compile
[INFO] | | | +- com.drewnoakes:metadata-extractor:jar:2.6.2:compile
[INFO] | | | | \- com.adobe.xmp:xmpcore:jar:5.1.2:compile
[INFO] | | | +- de.l3s.boilerpipe:boilerpipe:jar:1.1.0:compile
[INFO] | | | +- rome:rome:jar:1.0:compile
[INFO] | | | | \- jdom:jdom:jar:1.0:compile
[INFO] | | | +- org.gagravarr:vorbis-java-core:jar:0.6:compile
[INFO] | | | +- com.googlecode.juniversalchardet:juniversalchardet:jar:1.0.3:compile
[INFO] | | | +- com.uwyn:jhighlight:jar:1.0:compile
[INFO] | | | \- com.pff:java-libpst:jar:0.8.1:compile
[INFO] | | +- com.thoughtworks.xstream:xstream:jar:1.4.8:compile
[INFO] | | +- xmlpull:xmlpull:jar:1.1.3.1:compile
[INFO] | | +- xpp3:xpp3_min:jar:1.1.4c:compile
[INFO] | | +- xalan:xalan:jar:2.7.2:compile
[INFO] | | +- xalan:serializer:jar:2.7.2:compile
[INFO] | | +- xerces:xercesImpl:jar:2.11.0:compile
[INFO] | | +- xml-apis:xml-apis:jar:1.4.01:compile
[INFO] | | +- org.apache.xmlgraphics:xmlgraphics-commons:jar:1.5:compile
[INFO] | | +- javax.mail:mail:jar:1.5.0-b01:compile
[INFO] | | | \- javax.activation:activation:jar:1.1:compile
[INFO] | | +- org.apache.geronimo.specs:geronimo-jms_1.1_spec:jar:1.1.1:compile
[INFO] | | +- org.jsoup:jsoup:jar:1.8.1:compile
[INFO] | | +- org.jodd:jodd-core:jar:3.6.4:compile
[INFO] | | +- org.jodd:jodd-lagarto:jar:3.6.4:compile
[INFO] | | +- org.jodd:jodd-log:jar:3.6.4:compile
[INFO] | | +- org.mongodb:mongo-java-driver:jar:2.11.3:compile
[INFO] | | +- com.fifesoft:rsyntaxtextarea:jar:2.5.6:compile
[INFO] | | +- org.slf4j:slf4j-api:jar:1.7.10:compile
[INFO] | | \- org.slf4j:slf4j-nop:jar:1.7.10:compile
[INFO] | +- org.apache.jmeter:ApacheJMeter_core:jar:2.13:compile
[INFO] | \- kg.apc:jmeter-plugins-charts:jar:0.1:compile
[INFO] \- kg.apc:perfmon:jar:2.2.2:compile
[INFO] +- kg.apc:cmdrunner:jar:1.0.1:compile
[INFO] +- org.fusesource:sigar:jar:1.6.4:compile
[INFO] | \- log4j:log4j:jar:1.2.15:compile
[INFO] +- avalon-framework:avalon-framework:jar:4.1.5:compile
[INFO] \- logkit:logkit:jar:2.0:compile
You may get away with adding only a subset of these libraries, assuming that you don't go down code paths that require code from them.
This does kind of highlight why it's important to mark dependencies that you only rely on in testing as <scope>test</scope>
so that they don't get pulled down as a core dependency that is required to run your main code.
The above information hasn't made it into the Wiki yet (there's an ongoing task to add this information and move everything across to the website), it is however available in the CHANGELOG:
https://github.com/jmeter-maven-plugin/jmeter-maven-plugin/blob/master/CHANGELOG.md
I download jmeter-plugins-manager-0.15.jar using maven-antrun-plugin and then I use command line executions (also ant) to download the most fresh plugins:
<plugin><artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution><id>init</id><phase>initialize</phase><goals><goal>run</goal></goals>
<configuration>
<target>
<get src="http://jmeter-plugins.org/get/" dest="target/jmeter/lib/ext/jmeter-plugins-manager.jar"/>
<get src="http://central.maven.org/maven2/kg/apc/cmdrunner/2.0/cmdrunner-2.0.jar" dest="target/jmeter/lib/cmdrunner-2.0.jar"/>
<java classname="org.jmeterplugins.repository.PluginManagerCMDInstaller">
<classpath>
<pathelement location="target/jmeter/lib/ext/jmeter-plugins-manager.jar"/>
</classpath>
</java>
<ant antfile="plugins.xml" target="plugins" inheritAll="true" />
</target>
</configuration>
</execution>
</executions>
<dependencies>
<dependency><groupId>ant-contrib</groupId><artifactId>ant-contrib</artifactId><version>1.0b3</version>
<exclusions>
<exclusion><groupId>ant</groupId><artifactId>ant</artifactId></exclusion>
</exclusions>
</dependency>
</dependencies>
</plugin>
where plugins.xml is:
<project xmlns:ac="antlib:net.sf.antcontrib">
<target name="plugins">
<loadfile property="file" srcfile="plugins"/>
<ac:for param="line" list="${file}" delimiter="${line.separator}">
<ac:sequential>
<exec executable="target/jmeter/bin/PluginsManagerCMD.sh">
<arg value="install"/>
<arg value="@{line}"/>
</exec>
</ac:sequential>
</ac:for>
</target>
and plugins file contains the list of plugin ids:
jpgc-dummy
jpgc-fifo
jpgc-graphs-basic
jpgc-perfmon
jpgc-tst
jpgc-functions
jpgc-casutg
jpgc-ffw
jpgc-prmctl