【问题标题】:Jenkins only sees one of my maven modules in maven multimodule build jobJenkins 在 Maven 多模块构建作业中只看到我的一个 Maven 模块
【发布时间】:2015-03-21 22:46:28
【问题描述】:

我在一个 Maven 多模块项目中构建了几个模块。我可以在父目录中的头 pom.xml 上调用 maven 并构建所有模块。但是,Jenkins 只构建了我通过调用mvn -f <first child module it sees> 配置的几个 svn 存储库的第一个模块,而从不构建其他子模块。我尝试创建一个新的 Jenkins 项目,但出现了同样的问题。

【问题讨论】:

  • 听起来你配置错了jenkins,因为通常你只配置文件名pom.xml而没有路径。
  • 我不认为这是我的错误。我已经尝试删除子模块目录,以便父文件夹只包含 pom.xml。只有这样,Jenkins 才会尝试在这个 pom.xml 上进行构建(并且因为找不到相关模块而失败)。在我添加模块的那一刻,它会在它找到的第一个模块上进行构建。这是禁用增量构建/并行构建的情况。
  • 请展示您的 pom 文件并展示您的项目结构。可能你在 github 项目上有这个,所以它更容易研究?您在命令行和 Jenkins 中使用哪个 Maven 版本?您使用哪个 Jenkins 版本?
  • 周末花了很多时间,但我终于弄明白了。本来会早点给你看的,但他们有很多识别信息,我的雇主对隐私很严格。该问题已通过将父模块目录列为作业中的存储库来解决。以前,该模块只是我要下载的 pom.xml。如果我没有将父模块列为 repos 之一,Jenkins 会认为我的 repos 下的第一个子模块是父 pom。列出父 pom 的绝对路径有助于干净构建,但不利于 mvn 增量构建。做我所做的工作。
  • 补充说明:在 repos 中列出的第一个子 pom 构建之前,这实际上意味着对于增量构建,它将执行 -amd -pl 。这是不正确的,因为我会在 上进行更新,并且在 svn poll 之后它仍然会更新 Z。我应该向 Jenkins 提交 Jira 报告吗?

标签: maven jenkins


【解决方案1】:

在 maven 配置块的 Advanced 部分,你确定指向父 pom 吗? Jenkins 只针对本节中指定的 pom 执行一次 maven。

【讨论】:

    猜你喜欢
    • 2014-03-03
    • 1970-01-01
    • 2012-05-06
    • 2016-10-30
    • 2018-10-25
    • 2014-10-30
    • 2012-02-15
    • 1970-01-01
    • 2022-11-25
    相关资源
    最近更新 更多