当前位置: 首页 > 知识库问答 >
问题:

Jenkins maven项目忽略项目“构建”部分中指定的“目标和选项

张啸
2023-03-14
    null

我已经在“Manage Jenkins”-->“Configure System”下配置了Maven设置。

当我在“预步骤”部分创建“调用顶级Maven目标”步骤时,所有工作都按照预期进行。在“目标”行中,我可以指定“-x”、“clean install”等,并且maven通过打印这些目标,例如:

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

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

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

解析POM错误:无法解析POM org.apache.maven.project.projectBuildingException:处理POM时遇到一些问题:[FATAL]不可解析的父POM:找不到NL.icsCards:ics-build-parent:POM:1.1.8在http://repo.maven.apache.org/maven2中缓存在本地存储库中,将不会重新尝试解析,直到central的更新间隔已过或强制更新且“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$pomparser.java:1301)在hudson.maven.mavenmodulesetbuild$pomparser.invoke(mavenmodulesetbuild(FilePath.java:969)在hudson.maven.mavenModuleSetBuild.java:960)在hudson.maven.mavenModuleSetBuild.java:960)在hudson.maven.mavenModuleSetBuild.java:679)在hudson.model.abstractBuild.java:637)在hudson.model.run.execute(run.java:537)在hudson.model.run.execute(run.java:1741)在hudson.maven.mavenModuleSetBuild.run(mavenModuleSetBuild.java:531)在hudson.model.resourcecontroller.execute(troller.java:98)在hudson.model.executor.run(executor.java:408)完成Ed:失败

通过指定“-x”,我期望获得一些调试信息,就像我在前面所示的预构建步骤中调用“invoke top-level Maven targets”时一样。

还请注意,如果我创建一个“freestyle项目”而不是一个“maven项目”,并在其中执行一个shell语句

光盘 MVN-X清洁安装

对于我的“Maven Project”jenkins配置中可能出现的错误有什么建议吗?谢谢你的回复。

共有1个答案

赵钊
2023-03-14

问题是maven找不到父pom,它是项目的外部依赖项。

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

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

parent.pom.lastUpdated
http\://<private-VPN-host>/repo/repo-central/.lastUpdated=1439803113007
 类似资料:
  • 开始 建构流程是整个项目最核心的地方之一,通过我们所熟知的 webpack,完成了 template 转换为 wxml 和 样式转换优化以及其他的若干代码的拼接压缩混淆等操作,最终使之可以运行在微信小程序的环境中。 如果你不了解什么是 webpack, 可以查看 webpack文档 。 用一个图来描述: app.vue & main.js ┌---------┐

  • 为了定义一个多项目构建, 你需要创建一个设置文件 ( settings file). 设置文件放在源代码的根目录, 它指定要包含哪个项目. 它的名字必须叫做 settings.gradle. 在这个例子中, 我们使用一个简单的分层布局. 下面是对应的设置文件: Example 7.11. 多项目构建 - settings.gradle file settings.gradle include "s

  • 我已经看到了JDK发行版可以运行`javac-source1.6-target1.5`的编译选项。我理解来源和目标的单独选项。我不明白为什么源版本比目标版本高。为旧目标编译代码是有意义的。但是在这种情况下,为什么我们不使用我们希望能够运行的最古老目标的-source

  • 主要内容:Eclipse 构建项目Eclipse 构建项目 一个项目可以有零个或多个与之关联的构建器。Java 项目与 Java 构建器相关联。查看与项目相关的构建器 - 在 Package Explorer 视图中,右键单击该项目并选择 Properties。 在左侧树中单击 Builders。 Java 构建器将 Java 项目与其他类型的项目区分开来。通过单击 New 按钮,您可以将 Ant 构建器与 Java 项目相关联。

  • 多项目 通常在一个工程中构建多个项目间会有关联,尤其是它们都依赖一个项目时可以很容易的更新项目 在一个工程中每个子项目都会有自己的源代码目录、生成各自的jar包当执行 package 时. 一个项目通过申明一个 Project 类型的懒值来定义,例如: lazy val util = project lazy val core = project 这个变量值名称将被用来当做 Project Id

  • 简介 每一个活跃的项目会随着时间慢慢增长的,一开始可能只是个很小的项目到后面可能包含很多包和类。为了提高可维护性和解藕的目的,你可能想把项目根据逻辑和功能来划分成一个个模块。模块通常按照等级来组织,相互之间可以定义依赖。 Gradle给项目模块化提供了强大的支持,在Gradle中每个模块都是一个项目,我们称之为多项目构建,这一章介绍Gradle的多项目构建。