代码之家  ›  专栏  ›  技术社区  ›  Jeredriq Demas

Teamcity/Maven不会让模块被“跳过”

  •  0
  • Jeredriq Demas  · 技术社区  · 6 年前

    假设我有一个名为r的根项目,它有模块a、b、c和d作为子模块,但每个模块都是一个应用程序。

    每当我使用teamcity/maven并且出现错误时,它就会跳过其他模块,不管它是编译/测试模块。

    所以, 每当编译它时

    R................SUCCESS
    A................SUCCESS
    B................FAILURE
    C................SKIPPED
    D................SKIPPED
    

    我想在C和D两个方面都看到结果。我如何使用Teamcity/Maven来实现这一点。有什么参数吗?

    2 回复  |  直到 6 年前
        1
  •  1
  •   Senior Pomidor    6 年前

    此选项必须小心使用,但可能有用。无论项目结果如何,构建都不会失败。所有的失败都被忽略,构建只是继续。关于您的项目:

    mvn clean install --fail-never (or just --fn)
    
    [INFO]
    [INFO] ------------------------------------------------------------------------
    [INFO] Reactor Summary:
    [INFO] ------------------------------------------------------------------------
    [INFO] Module A .............................................. SUCCESS [2.583s]
    [INFO] Module B .............................................. SUCCESS [0.086s]
    [INFO] Module C .............................................. FAILED [1.598s]
    [INFO] Module D .............................................. SUCCESS [0.051s]
    [INFO] Reactor ............................................... SUCCESS [0.921s]
    [INFO] ------------------------------------------------------------------------
    [INFO] Error for project: Module C (during install)
    [INFO] ------------------------------------------------------------------------
    [INFO] There are test failures.
    
    Please refer to /Users/clement/workspaces/experiments/Project/module-C/target/surefire-reports for the individual test results.
    [INFO] ------------------------------------------------------------------------
    [INFO] For more information, run Maven with the -e switch
    [INFO] ------------------------------------------------------------------------
    [INFO]  + Ignoring failures
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD SUCCESSFUL
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time: 5 seconds
    [INFO] Finished at: Sun May 09 10:43:41 CEST 2010
    [INFO] Final Memory: 31M/79M
    [INFO] ------------------------------------------------------------------------
    

    模块C失败,未跳过D,全局生成成功。

    在Teamcity中,您可以添加 build failure condition 用于检查结果,如果发现任何错误,则生成失败

        2
  •  1
  •   khmarbaise    6 年前

    如果你使用 mvn --fail-at-end 所有模块都将通过,但故障将仅在生成结束时显示。