首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用maven中的参数执行多个目标

使用maven中的参数执行多个目标
EN

Stack Overflow用户
提问于 2016-01-08 21:59:57
回答 1查看 11.3K关注 0票数 3

我试图在maven中执行多个目标。

我的Pom.xml就像

代码语言:javascript
复制
<plugins>
    <plugin>
        <groupId>com.lazerycode.jmeter</groupId>
        <artifactId>jmeter-maven-plugin</artifactId>
        <version>1.4.1</version>
        <executions>
            <execution>
                <id>jmeter-tests</id>
                <phase>verify</phase>
                <goals>
                    <goal>jmeter</goal>
                </goals>
                <configuration>
                    <testFilesIncluded>
                        <jMeterTestFile>${mytest}</jMeterTestFile>                       
                    </testFilesIncluded>
                    <propertiesUser>                
                        <hostName>${myhost}</hostName> 
                        <port>${myport}</port> 
                        <protocol>${myprotocol}</protocol>              
                    </propertiesUser>
                </configuration>                        
            </execution>
        </executions>
    </plugin>

    <plugin>
        <groupId>de.codecentric</groupId>
        <artifactId>jmeter-graph-maven-plugin</artifactId>
        <version>0.1.0</version>
        <executions>
            <execution>
                <id>create-graphs</id>
                <goals>
                    <goal>create-graph</goal>
                </goals>
                <phase>verify</phase>         
            </execution>
        </executions>       
    </plugin>

    <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>exec-maven-plugin</artifactId>
        <version>1.4.0</version>
        <executions>
            <execution>
                <id>runcommand</id>
                <goals>
                    <goal>exec</goal>
                </goals>
            </execution>
        </executions>   
        <configuration>
            <executable>mvn</executable>
            <arguments>
                <argument>**com.lazerycode.jmeter:jmeter-maven-plugin:1.4.1:jmeter@jmeter-tests -Dmyhost=hix.qa.com -Dmyport=80 -Dmyprotocol=http -Dmythreads=5 -Dmyloopcount=20 -Dmyrampup=1 -Dmytest=ScreenerAPI.jmx**</argument>
                <argument>de.codecentric:jmeter-graph-maven-plugin:0.1.0:create-graph@create-graphs</argument>        
            </arguments>
        </configuration>
    </plugin>     
</plugins>

我在org.codehaus插件中提到了两个论点。

在禁用argument1的情况下运行以下命令可以正常工作。

代码语言:javascript
复制
mvn org.codehaus.mojo:exec-maven-plugin:1.4.0:exec@runcommand 

但是,当我使用这两种参数运行命令时,启用参数都会给出一个错误。

执行com.lazerycode.jmeter:jmeter-maven-plugin:1.4.1:jmeter@jmeter-tests -Dmyhost=hix.qa.com -Dmyport=80 -Dmyprotocol=http -Dmythreads=5 -Dmyloopcount=20 -Dmyrampup=1 -Dmytest=ScreenerAPI.jmx失败

使用cmd行中的参数单独运行goal1和goal2可以正常工作。

代码语言:javascript
复制
mvn de.codecentric:jmeter-graph-maven-plugin:0.1.0:create-graph@create-graphs 
mvn com.lazerycode.jmeter:jmeter-maven-plugin:1.4.1:jmeter@jmeter-tests "-Dmyhost=hix.qa.com" "-Dmyport=80" "-Dmyprotocol=http" "-Dmythreads=5" "-Dmyloopcount=20" "-Dmyrampup=1" "-Dmytest=ScreenerAPI.jmx"

如何在运行多个目标时将参数从命令行传递给一个目标?

EN

回答 1

Stack Overflow用户

发布于 2016-01-08 22:08:23

您希望执行多个命令,因此您希望有多个插件的处决

代码语言:javascript
复制
<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>exec-maven-plugin</artifactId>
    <version>1.4.0</version>
    <executions>
        <!-- First execution executing jmeter-maven-plugin -->
        <execution>
            <id>runcommand1</id>
            <goals>
                <goal>exec</goal>
            </goals>
            <phase> <!-- you need to write a phase here --> </phase>
            <configuration>
                <arguments>
                    <argument>com.lazerycode.jmeter:jmeter-maven-plugin:1.4.1:jmeter@jmeter-tests -Dmyhost=hix.qa.com -Dmyport=80 -Dmyprotocol=http -Dmythreads=5 -Dmyloopcount=20 -Dmyrampup=1 -Dmytest=ScreenerAPI.jmx</argument>
                </arguments>
            </configuration>
        </execution>
        <!-- Second execution executing jmeter-graph-maven-plugin -->
        <execution>
            <id>runcommand2</id>
            <goals>
                <goal>exec</goal>
            </goals>
            <phase> <!-- you need to write a phase here --> </phase>
            <configuration>
                <arguments>
                    <argument>de.codecentric:jmeter-graph-maven-plugin:0.1.0:create-graph@create-graphs</argument>
                </arguments>
            </configuration>
        </execution>
    </executions>
    <configuration>
        <executable>mvn</executable>
    </configuration>
</plugin>

此配置可执行多项任务:

  • 它为要调用的2条命令配置2次执行。它们都配置了正确的<argument>属性。
  • 它在全局配置元素中对这两个元素的公共配置进行了分解。在本例中,这只是可执行文件。

但是,有一个重要的因素:如果要在单个构建中同时执行这些执行,则需要将它们绑定到一个阶段。例如,如果将它们绑定到verify,那么调用mvn verify将调用这两种执行。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34686837

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档