当前位置: 首页 > 面试题库 >

在maven-surefire-plugin中附加argLine参数的值

叶嘉颖
2023-03-14
问题内容

我一起使用maven-surefire-plugin+ Sonar,我想argLine为maven-surefire-
plugin的参数添加一些额外的值。

所以我做到了:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.20.1</version>
            <configuration>
                <argLine>-DCRR.Webservice.isSimulated=true -D...</argLine>
            </configuration>
        </plugin>
        ...
    </plugins>
</build>

但是在这种情况下,我将覆盖argLine参数的原始值,Sonar不会生成jacoco.exec文件。

我可以在Maven调试日志(-X)中看到argLine参数的值没有覆盖,而是-javaagent:/opt/jenkins/.../myproject- SONAR/.repository/org/jacoco/org.jacoco.agent/0.7.4.201502262128/org.jacoco.agent-0.7.4.201502262128-runtime.jar=destfile=/opt/jenkins/.../myproject- SONAR/target/jacoco.exec

追加此参数原始值的正确方法是什么(保留原始值+添加其他值)?

我正在使用Apache Maven 3.5.0,Java版本:1.8.0_131,供应商:Oracle Corporation。


问题答案:

官方文件称该更换较晚。

如果执行以下操作,则将覆盖argLine之前由其他插件设置的参数值,因此 请勿 这样做

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <configuration>
        <argLine>-D... -D...</argLine>
    </configuration>
</plugin>

保留现有值并添加配置的正确方法是使用@{...}语法:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <configuration>
        <argLine>@{argLine} -D... -D...</argLine>
    </configuration>
</plugin>

或者您可以在文件argLine中将其设置为:property``pom.xml

<properties>
    <argLine>-DCRR.Webservice.isSimulated=true -D...</argLine>
</properties>

以上两种解决方案均能正常工作。



 类似资料:
  • 我有2个配置文件,可以或不可以一起使用来运行一组测试。它们都需要不同的VMARG来运行,但是如果它们一起使用,可以将它们附加到彼此之间。 我正在寻找的是一种将argLine设置为其当前值加上我设置的值的串联的方法。 在配置文件的每个可靠配置中,我将设置为: 这在逻辑上适合我,但它的评估方式显然不符合要求。

  • 是否有任何surefire或TeamCity选项来配置运行时JRE? 这是我当前的可靠配置:

  • 这个问题更侧重于理解maven的生命周期,而不是解决一个真正的问题。 我们有一个包含几个maven模块的项目。Jacoco和Surefire插件都是在父pom中配置的。xml格式如下: 这种配置运行良好,jacoco。执行常见目标时,会在目标目录上创建exec文件,例如: 或 但如果我们执行以下命令,jacoco。未创建exec文件: 通过使用-X选项分析日志,surefire插件表明它将按照预期

  • 我们有以下情况:我们有单元测试和集成测试。单元测试类以结束,集成测试以结束。为了在Maven build中只执行单元测试,我们使用以下配置:

  • 在Java jar上运行JUnit5测试并加载依赖项时,会出现警告 当我去看dumpstream时,它充满了评论,比如: 解决了依赖项加载问题,但未解决损坏的流。

  • 当我使用maven运行我的testng套件xml时,在suite标记中没有parallel=“tests”时,我会出现异常。 当我用parallel=“tests”运行它时,它工作得很好。此外,如果我在没有parallel=“tests”的情况下从eclipse“Run as testng Test”运行我的testng套件xml,它工作得很好。请帮忙。