【问题标题】:Jenkins maven projects ignore "Goals and options" specified in project "Build" sectionJenkins maven 项目忽略项目“构建”部分中指定的“目标和选项”
【发布时间】:2016-01-12 12:23:48
【问题描述】:

我的系统版本如下:

  • 詹金斯版本。 1.633
  • Ubuntu 版本 14.04.2 LTS
  • Maven 版本 3.0.5

我已经在“管理 Jenkins”-->“配置系统”下配置了 Maven 设置。

当我在“Pre Steps”部分创建“Invoke top-level Maven targets”步骤时,一切都按预期工作。在“目标”行中,我可以指定“-X”、“全新安装”等,然后 maven 通过打印例如:

[DEBUG] 从 .../settings.xml 读取全局设置

[DEBUG] 从 .../settings.xml 读取用户设置

[DEBUG] 在 .../repository 使用本地存储库

当我在“构建部分”的“目标和选项”输入字段中设置相同的目标(例如 -X)时,我只得到以下 Jenkins 控制台输出:

解析 POM 错误:无法解析 POM org.apache.maven.project.ProjectBuildingException:一些问题是 在处理 POM 时遇到:[致命] 不可解析的父级 POM:找不到 nl.icscards:ics-build-parent:pom:1.1.8 in http://repo.maven.apache.org/maven2 被缓存在本地 存储库,在更新之前不会重新尝试解析 中心间隔已过或强制更新 'parent.relativePath' 指向错误的本地 POM @ 第 6 行第 10 列

在 org.apache.maven.project.DefaultProjectBuilder.build(DefaultProjectBuilder.java:364) 在 hudson.maven.MavenEmbedder.buildProjects(MavenEmbedder.java:361) 在 hudson.maven.MavenEmbedder.readProjects(MavenEmbedder.java:331) 在 hudson.maven.MavenModuleSetBuild$PomParser.invoke(MavenModuleSetBuild.java:1301) 在 hudson.maven.MavenModuleSetBuild$PomParser.invoke(MavenModuleSetBuild.java:1098) 在 hudson.FilePath.act(FilePath.java:991) 在 hudson.FilePath.act(FilePath.java:969) 在 hudson.maven.MavenModuleSetBuild$MavenModuleSetBuildExecution.parsePoms(MavenModuleSetBuild.java:960) 在 hudson.maven.MavenModuleSetBuild$MavenModuleSetBuildExecution.doRun(MavenModuleSetBuild.java:679) 在 hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:537) 在 hudson.model.Run.execute(Run.java:1741) 在 hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:531) 在 hudson.model.ResourceController.execute(ResourceController.java:98) 在 hudson.model.Executor.run(Executor.java:408) 完成:失败

我期望通过指定“-X”来获得一些调试信息,就像我在上面显示的那样作为预构建步骤调用“调用顶级 Maven 目标”时所做的那样。

还请注意,如果我创建一个“Freestyle 项目”而不是“Maven 项目”并在那里执行表单的 shell 语句,那么一切都会按预期工作

cd <job_workspace> mvn -X clean install

在这种情况下,我也可以看到预期的输出。

关于我的“Maven 项目”jenkins 配置中可能有什么问题的任何建议? 提前感谢您的任何回复。

【问题讨论】:

    标签: maven jenkins


    【解决方案1】:

    原来问题在于 maven 找不到作为项目外部依赖项的父 pom。

    奇怪的是,一个 Maven Jenkins 项目甚至在 maven 可以打印调试信息之前尝试获取这些依赖项,例如它在 jenkins 控制台上使用的设置文件。因此它失败了,但很难猜测问题是什么。我认为它无法选择正确的存储库路径或正确的 settings.xml 文件。

    在我的情况下,问题是在存储库的父 pom 依赖项中我有一个文件

    parent.pom.lastUpdated
    

    其中包含一行:

    http\://<private-VPN-host>/repo/repo-central/.lastUpdated=1439803113007
    

    我无法从 jenkins 服务器访问私有 VPN 主机,因此它失败了。删除该文件或上述行可以解决问题。 依赖项被正确拾取并且 maven 项目正确构建。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-02-26
      • 2013-02-21
      • 1970-01-01
      • 2013-11-12
      • 2019-12-16
      • 2014-02-18
      • 2015-09-19
      • 1970-01-01
      相关资源
      最近更新 更多