Lazerycode jmeter maven插件Java扩展下载排除的依赖项

时间:2017-05-18 16:04:59

标签: java maven jmeter jmeter-maven-plugin

我正在尝试在我的测试中使用 Java采样器。 我有一个单独的maven项目,我在其中创建我的扩展。在构建项目之后,我得到一个.jar lib。我将它包含在我的maven插件中,如下所示:

 <dependencies>
    <dependency>
        <groupId>com.lazerycode.jmeter</groupId>
        <artifactId>jmeter-maven-plugin</artifactId>
        <version>2.2.0</version>
    </dependency>
    <dependency>
        <groupId>com.qiagen</groupId>
        <artifactId>qa_toolkit</artifactId>
        <version>RELEASE</version>
    </dependency>
    <dependency>
        <groupId>com.qiagen</groupId>
        <artifactId>JMeterExtensions</artifactId>
        <version>jmeter3.2.3</version>
    </dependency>
</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>com.lazerycode.jmeter</groupId>
            <artifactId>jmeter-maven-plugin</artifactId>
            <version>2.2.0</version>
            <executions>
                <execution>
                    <id>jmeter-tests</id>
                    <phase>verify</phase>
                    <goals>
                        <goal>jmeter</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <testFilesDirectory>${basedir}/src/test/jmeter/</testFilesDirectory>
                <testFilesIncluded>
                    <jMeterTestFile>${jmxTest}</jMeterTestFile>
                </testFilesIncluded>
                <jmeterDirectory>${jmeter.home}</jmeterDirectory>
                <jmeterExtensions>
                    <artifact>com.qiagen:JMeterExtensions:jmeter3.2.3</artifact>
                </jmeterExtensions>
                <propertiesUser>
                    <csvData>${basedir}/src/test/jmeter/${csvData}</csvData>
                    <threads>${threads}</threads>
                    <rampTime>${rampTime}</rampTime>
                    <loopCount>${loopCount}</loopCount>
                    <options>${options}</options>
                    <server>${server}</server>
                    <port>${port}</port>
                    <sleep>${sleep}</sleep>
                    <inputXmlFileDir>${inputXmlFileDir}</inputXmlFileDir>
                    <templatesCsv>${templatesCsv}</templatesCsv>
                    <xmlInputsCsv>${xmlInputsCsv}</xmlInputsCsv>
                    <reportScenariosCsv>${reportScenariosCsv}</reportScenariosCsv>
                </propertiesUser>
                <jMeterProcessJVMSettings>
                    <xms>2048</xms>
                    <xmx>2048</xmx>
                    <arguments>
                        <argument>-Xprof</argument>
                        <argument>-Xfuture</argument>
                    </arguments>
                </jMeterProcessJVMSettings>
            </configuration>
        </plugin>
    </plugins>
</build>

在我的扩展中,我有一些无效的传递依赖,我从扩展pom.xml中排除了它。我没有在依赖树中看到它们。

当我运行测试时,标志 downloadExtensionDependencies on true ,看起来它试图下载所有依赖项(也是那些被排除的),然后测试失败,因为无效的依赖项

Failed to collect dependencies at org.springframework:spring-webmvc:jar:3.1.1.RELEASE -> jasperreports:jasperreports:jar:2.0.5 -> commons-collections:commons-collections:jar:3.2.1.redhat-7: Failed to read artifact descriptor for commons-collections:commons-collections:jar:3.2.1.redhat-7: Could not transfer artifact org.apache.commons:commons-parent:pom:22-redhat-2 from/to jaspersoft (http://www.jasperforge.org/maven2): www.jasperforge.org: Unknown host www.jasperforge.org -> [Help 1]

你有什么想法,为什么插件也试图下载被排除的依赖项呢?

1 个答案:

答案 0 :(得分:2)

使用版本2.6.0的plugin,它现在具有更好的默认值,例如不下载可选的依赖项。

并使用它来排除损坏或排除的依赖项:

 <excludedArtifacts>
    <exclusion>commons-pool2:commons-pool2</exclusion>
    <exclusion>commons-math3:commons-math3</exclusion>
    <exclusion>com.sun.jdmk:jmxtools</exclusion>
    <exclusion>com.sun.jmx:jmxri</exclusion>
 </excludedArtifacts>