【问题标题】:Maven goals doing cobertura analysis and installMaven 目标做 cobertura 分析和安装
【发布时间】:2016-03-17 10:24:11
【问题描述】:

我正在使用JenkinsMaven 构建一些Java 项目。此外,我使用Cobertura 进行覆盖率分析。因此,我设置了 Jenkins Maven 构建作业并配置了以下目标:

clean cobertura:cobertura

这对于覆盖率分析工作正常,但不会生成 POM 中配置的任何 jar 输出。我认为是这样,因为 Maven 目标 package 不在 Cobertura lifecycle 中。

为了获取 jar 文件,我尝试将其更改为

clean cobertura:cobertura install

这是在做这项工作,但还有另一个问题:从 resourcestest 的每个目标都执行了两次 :( 控制台输出看起来像(删除了详细信息行)

[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ HelloWorld ---
[INFO] >>> cobertura-maven-plugin:2.7:cobertura (default-cli) > [cobertura]test @ HelloWorld >>>
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ HelloWorld ---
[INFO] --- maven-compiler-plugin:3.5.1:compile (default-compile) @ HelloWorld ---
[INFO] --- cobertura-maven-plugin:2.7:instrument (default-cli) @ HelloWorld ---
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ HelloWorld ---
[INFO] --- maven-compiler-plugin:3.5.1:testCompile (default-testCompile) @ HelloWorld ---
[INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ HelloWorld ---
[INFO] <<< cobertura-maven-plugin:2.7:cobertura (default-cli) < [cobertura]test @ HelloWorld <<<
[INFO] --- cobertura-maven-plugin:2.7:cobertura (default-cli) @ HelloWorld ---
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ HelloWorld ---
[INFO] --- maven-compiler-plugin:3.5.1:compile (default-compile) @ HelloWorld ---
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ HelloWorld ---
[INFO] --- maven-compiler-plugin:3.5.1:testCompile (default-testCompile) @ HelloWorld ---
[INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ HelloWorld ---
[INFO] --- maven-jar-plugin:2.6:jar (default-jar) @ HelloWorld ---
[INFO] --- maven-install-plugin:2.4:install (default-install) @ HelloWorld ---

有没有办法使用install 使用从resourcestestcobertura 阶段的结果?

换句话说,像这样的输出

[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ HelloWorld ---
[INFO] >>> cobertura-maven-plugin:2.7:cobertura (default-cli) > [cobertura]test @ HelloWorld >>>
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ HelloWorld ---
[INFO] --- maven-compiler-plugin:3.5.1:compile (default-compile) @ HelloWorld ---
[INFO] --- cobertura-maven-plugin:2.7:instrument (default-cli) @ HelloWorld ---
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ HelloWorld ---
[INFO] --- maven-compiler-plugin:3.5.1:testCompile (default-testCompile) @ HelloWorld ---
[INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ HelloWorld ---
[INFO] <<< cobertura-maven-plugin:2.7:cobertura (default-cli) < [cobertura]test @ HelloWorld <<<
[INFO] --- cobertura-maven-plugin:2.7:cobertura (default-cli) @ HelloWorld ---
[INFO] --- maven-jar-plugin:2.6:jar (default-jar) @ HelloWorld ---
[INFO] --- maven-install-plugin:2.4:install (default-install) @ HelloWorld ---

附加信息:更改 POM 不是一种选择,因为它们不是由我管理的。

【问题讨论】:

    标签: maven jenkins cobertura maven-cobertura-plugin


    【解决方案1】:

    简短的回答:没有。经过反复试验,我终于找到了一个可以接受的解决方案:

    离开像 Maven 的目标

    clean cobertura:cobertura
    

    并添加执行 Maven 目标的构建后步骤

    install -Dmaven.test.skip=true
    

    这样测试不会执行两次。 compile 和类似的会执行两次,但这还不错,因为 Cobertura 已经编译了所有内容,迫使 Maven 跳过这一步。

    注意:clean cobertura:cobertura install -Dmaven.test.skip=true 是不可能的,因为test.skip 开关对两个目标都有影响。

    【讨论】:

      猜你喜欢
      • 2014-12-18
      • 2016-03-21
      • 1970-01-01
      • 1970-01-01
      • 2014-07-29
      • 2015-10-21
      • 2011-01-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多