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

在Maven构建期间,Jenkins主节点无法在Jenkins从节点上找到pom.xml文件

梁建德
2023-03-14

我有一个设置,其中存在一个

JenkinsMaster(jenkins-master)机器和一个JenkinsSlave Node(jenkins-server-one)。Slave Node用于编译Maven项目。这些项目是从Gitlab安装中拉下来的。

在主服务器端运行Jenkins作业时,我在控制台中看到以下错误:

[ERROR]您指定的目标需要执行一个项目,但此目录(/var/jenkins/workspace/build-cc-restapi-dev)中没有POM。请验证您从正确的目录调用了Maven。-

从Gitlab中提取代码效果良好。这只是pom。xml位于从属节点/机器上:

/var/jenkins/workspace/build-cc-restapi-dev/ccinfieldworkserver/pom.xml

请注意

The git cloning process is placing everything into:

=> /var/jenkins/workspace/build-cc-restapi-dev/ccinfieldworkserver
and not
=> /var/jenkins/workspace/build-cc-restapi-dev/

如何解决此问题?

断续器

Started by user Jenkins Admin
Building remotely on ubuntu16.04-slave-one (build-maven-project) in workspace /var/jenkins/workspace/build-cc-restapi-dev
Cloning the remote Git repository
Cloning repository git@mylocalserver:CCININ/fieldwork-server.git
 > /usr/bin/git init /var/jenkins/workspace/build-cc-restapi-dev/ccinfieldworkserver # timeout=10
Fetching upstream changes from git@mylocalserver:CCININ/fieldwork-server.git
 > /usr/bin/git --version # timeout=10
using GIT_SSH to set credentials Using jenkins ID on Gitlab to fetch code from GITLAB
 > /usr/bin/git fetch --tags --progress git@mylocalserver:CCININ/fieldwork-server.git +refs/heads/*:refs/remotes/origin/*
 > /usr/bin/git config remote.origin.url git@mylocalserver:CCININ/fieldwork-server.git # timeout=10
 > /usr/bin/git config --add remote.origin.fetch +refs/heads/*:refs/remotes/origin/* # timeout=10
 > /usr/bin/git config remote.origin.url git@mylocalserver:CCININ/fieldwork-server.git # timeout=10
Fetching upstream changes from git@mylocalserver:CCININ/fieldwork-server.git
using GIT_SSH to set credentials Using jenkins ID on Gitlab to fetch code from GITLAB
 > /usr/bin/git fetch --tags --progress git@mylocalserver:CCININ/fieldwork-server.git +refs/heads/*:refs/remotes/origin/*
 > /usr/bin/git rev-parse refs/remotes/origin/dev^{commit} # timeout=10
 > /usr/bin/git rev-parse refs/remotes/origin/origin/dev^{commit} # timeout=10
Checking out Revision 039b646001804b5fba636e514e85c9093a95ef5d (refs/remotes/origin/dev)
Commit message: "second change to see what happens"
 > /usr/bin/git config core.sparsecheckout # timeout=10
 > /usr/bin/git checkout -f 039b646001804b5fba636e514e85c9093a95ef5d
 > /usr/bin/git rev-list 039b646001804b5fba636e514e85c9093a95ef5d # timeout=10
[build-cc-restapi-dev] $ /opt/maven/bin/mvn clean package
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.153 s
[INFO] Finished at: 2017-09-13T15:50:15+00:00
[INFO] Final Memory: 4M/10M
[INFO] ------------------------------------------------------------------------
[ERROR] The goal you specified requires a project to execute but there is no POM in this directory (/var/jenkins/workspace/build-cc-restapi-dev). Please verify you invoked Maven from the correct directory. -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MissingProjectException
Build step 'Invoke top-level Maven targets' marked build as failure
Finished: FAILURE

共有1个答案

欧阳昊焱
2023-03-14

没关系,我发现我可以指定pom的位置。直接在构建下的xml文件-

 类似资料:
  • 问题内容: 我正在使用Jenkins Build Flow插件来实现并行化。Groovy DSL执行某些文件操作。即使该选项设置为在特定从属服务器上运行作业,但DSL仍在主服务器上运行。这不是故意的。 有人可以告诉我如何限制DSL在指定的从站上运行吗?即使有一种方法可以通过DSL访问从文件系统,也应该可以。 通常,我们如何使用Groovy从Jenkins主节点访问节点从节点上的文件? 工作空间位于

  • 我正在尝试将我们的 jenkins 构建日志推送到 S3。我在构建阶段使用了Groovy插件和以下脚本 然后我使用 S3 插件将.txt文件推送到 S3。 但是这个脚本从主节点获取构建日志文件。构建日志如何从从节点传输到主节点?我可以在没有主节点参与的情况下访问我的从节点上的构建日志文件吗? 从节点必须在某处构建时保留构建日志?我似乎找不到。

  • 问题内容: 我已经设置了一个Jenkins主节点,并且想要在同一网络中添加一个从节点。我需要在从机上安装Jenkins吗?还是可以在不首先安装Jenkins的情况下使用任意机器? 问题答案: 不,您根本不需要在任何从属计算机中安装Jenkins。 如果它是Linux从站,则只需要启用SSH访问即可。如果是Windows计算机,则使用Java并与 Jenkins提供的jar或通过Java Web c

  • 问题内容: 构建外壳为: 结果是: 为什么找不到node命令? 我正在使用docker官方jenkins映像运行它。 编辑:詹金斯:2.46.1-高山 问题答案: 根据问题JENKINS-34815(NodeJS插件无法安装全局NPM软件包)中的建议,检查您 看到这个评论: 使用当前的docker jenkins:2.32.1-alpine和插件nodejs:1.0时,在使用节点7.4时会再次发生

  • 问题内容: Windows从节点通过“ Java Web Start”连接到Jenkins服务器。节点的系统信息没有其IP地址。 我必须遍历我们拥有的所有从属节点,并找到与Jenkins中的从属节点相对应的机器(IP地址)。 有没有办法从詹金斯本身找到从属节点的IP地址? 问题答案: 通过该 节点 的脚本控制台( Manage Jenkins- > 节点 -> 选择一个节点 -> 脚本控制台 ),

  • 我正在使用 Jenkins Build Flow 插件来实现并行化。Groovy DSL执行某些文件操作。即使选项设置为在特定从服务器上运行作业,DSL也会在主服务器上运行。这不是故意的。 有人能告诉我如何限制DSL在指定的从机上运行吗?即使有一种方法可以通过DSL访问从属文件系统,也应该有效。 一般来说,我们如何使用Groovy从主机访问节点从Jenkins文件? 工作区位于从属节点上,但是当我