Maven在Jenkins上无法解析POM文件

19

我有一个简单的 Maven 项目,包含一些常见的测试工具。

在本地构建没有问题,但是在 Jenkins 上出现了奇怪的错误(见下文)。

其他信息:

  • 使用 maven 在本地构建正常
  • 设置与我们所有其他的 jenkins 项目相同(非常基础)
  • 其他 jenkins 构建工作得很好
  • 我尝试删除 /root/.jenkins/workspace/testtools 文件夹
  • 我尝试删除构建并给它一个新名称
  • 磁盘不满
  • 我无法在其他地方找到任何有关这个特定问题的有用信息。

**

Parsing POMs
ERROR: Failed to parse POMs
hudson.maven.MavenEmbedderException: 1 problem was encountered while building the effective settings
[FATAL] Non-readable settings /root/.jenkins/workspace/testtools: /root/.jenkins/workspace/testtools (Is a directory) @ /root/.jenkins/workspace/testtools**
at hudson.maven.MavenEmbedder.<init>(MavenEmbedder.java:128)
at hudson.maven.MavenEmbedder.<init>(MavenEmbedder.java:109)
at hudson.maven.MavenEmbedder.<init>(MavenEmbedder.java:136)
at hudson.maven.MavenUtil.createEmbedder(MavenUtil.java:212)
at hudson.maven.MavenModuleSetBuild$PomParser.invoke(MavenModuleSetBuild.java:1254)
at hudson.maven.MavenModuleSetBuild$PomParser.invoke(MavenModuleSetBuild.java:1058)
at hudson.FilePath.act(FilePath.java:909)
at hudson.FilePath.act(FilePath.java:882)
at hudson.maven.MavenModuleSetBuild$MavenModuleSetBuildExecution.parsePoms(MavenModuleSetBuild.java:920)
at hudson.maven.MavenModuleSetBuild$MavenModuleSetBuildExecution.doRun(MavenModuleSetBuild.java:652)
at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:586)
at hudson.model.Run.execute(Run.java:1603)
at hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:506)
at hudson.model.ResourceController.execute(ResourceController.java:88)
at hudson.model.Executor.run(Executor.java:247)
Caused by: hudson.maven.MavenEmbedderException: 1 problem was encountered while building the effective settings
[FATAL] Non-readable settings /root/.jenkins/workspace/testtools: /root/.jenkins/workspace/testtools (Is a directory) @ /root/.jenkins/workspace/testtools
at hudson.maven.MavenEmbedder.getSettings(MavenEmbedder.java:261)
at hudson.maven.MavenEmbedder.buildMavenExecutionRequest(MavenEmbedder.java:157)
at hudson.maven.MavenEmbedder.<init>(MavenEmbedder.java:120)
... 14 more
Caused by: org.apache.maven.settings.building.SettingsBuildingException: 1 problem was    encountered while building the effective settings
[FATAL] Non-readable settings /root/.jenkins/workspace/testtools: /root/.jenkins/workspace/testtools (Is a directory) @ /root/.jenkins/workspace/testtools
at org.apache.maven.settings.building.DefaultSettingsBuilder.build(DefaultSettingsBuilder.java:116)
at hudson.maven.MavenEmbedder.getSettings(MavenEmbedder.java:259)
... 16 more
Finished: FAILURE

你能检查一下是否有读取设置文件/访问目录等的权限吗? - StanislavL
不要让你的Jenkins在root权限下运行,最好使用一个不同的用户,比如jenkins;-)… - khmarbaise
Jenkins以root身份运行,因此应该可以访问文件。
  • 是的,我同意Jenkins不应该以root身份运行,我们会解决这个问题,但这并不影响我的当前问题。
- Lasse L
5个回答

16

Maven尝试将/root/.jenkins/workspace/testtools作为其用户设置文件阅读(通常在/root/.m2/settings.xml下)。由于这是一个目录,因此无法读取。

在您的作业配置中检查Build -> Advanced... -> settings file。您似乎已经选择了没有任何值的Settings in file system。将其更改为“使用默认的Maven设置”,即可解决问题。


非常感谢。这是一个纯粹的新手错误。 - Lasse L
我们的Jenkins被配置为将“.”作为默认设置提供程序的值。在此处进行修复可以使任何新项目的错误消失。 - Lasse L

1
我们遇到了一个问题,由于Jenkins Maven插件中的错误引起。更新到2.15.1以上的版本解决了这个问题。

0

enter image description here

在Jenkins中检查您的项目配置

Build -> Advanced... -> settings 

在这里将一切设为默认值,你就可以开始了


-1

我在更改构建名称并包含空格字符后遇到了问题。'执行 shell' 正在使用 $WORKSPACE 变量,但由于空格而无法正常工作。


-1

如果项目配置中未使用pom.xml的完全限定路径名,例如C:\Users\user1\workspace\WebdriverTest不是完全限定的,则可能会触发此错误。这个是完全限定的:C:\Users\user1\workspace\WebdriverTest\pom.xml请注意\pom.xml


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接