You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Ubuntu中用Jenkins运行Maven项目失败,Windows10配置可正常运行

我之前也碰到过一模一样的情况!Windows和Ubuntu的环境差异确实会给Jenkins+Maven的配置埋不少坑,下面是我踩过的几个常见问题和对应的解决办法,你可以挨个排查:

1. 环境变量与用户权限问题

这是最容易踩的坑,毕竟Windows和Linux的系统机制差太多:

  • Maven/JDK路径配置错误:别直接把Windows上的路径照搬过来!在Jenkins的「全局工具配置」里,重新设置MAVEN_HOME和JDK的路径:
    • Maven路径比如是/usr/share/maven(系统默认安装)或者你自己解压的/opt/apache-maven-3.9.4
    • JDK路径可以用/usr/lib/jvm/java-11-openjdk-amd64这类系统自带的,或者你手动安装的路径
      保存后记得重启Jenkins再试构建。
  • Jenkins用户权限不足:Ubuntu下Jenkins默认以jenkins用户运行,这个用户可能没权限访问项目目录或Maven仓库:
    • 给项目工作空间授权:sudo chown -R jenkins:jenkins /var/lib/jenkins/workspace/你的项目名称
    • 给Maven仓库授权:sudo chown -R jenkins:jenkins /var/lib/jenkins/.m2(如果仓库在Jenkins用户目录下)
2. 项目代码与文件的兼容性问题
  • 硬编码的路径分隔符:如果代码里写了Windows风格的\(比如读取配置文件、资源的路径),在Ubuntu下肯定会报错。要么换成Linux的/,要么用Java的File.separator动态适配系统。
  • 文件编码不统一:Windows默认GBK,Ubuntu默认UTF-8,编码不一致会导致构建时解析失败。解决办法有两个:
    1. 在Jenkins构建命令里加编码参数:mvn clean install -Dfile.encoding=UTF-8
    2. 在项目的pom.xml里统一编码配置:
<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
</properties>
3. Maven依赖下载的问题
  • 镜像源或代理配置错误:Ubuntu下可能因为网络问题无法下载中央仓库的依赖,建议修改Jenkins用户的settings.xml(路径一般是/var/lib/jenkins/.m2/settings.xml),配置国内镜像比如阿里云:
<mirrors>
    <mirror>
        <id>aliyunmaven</id>
        <mirrorOf>central</mirrorOf>
        <url>https://maven.aliyun.com/repository/public</url>
    </mirror>
</mirrors>
  • 跨系统的缓存损坏:把Windows上的Maven缓存直接拷到Ubuntu上大概率会出问题,不如直接删除缓存目录重新下载:sudo rm -rf /var/lib/jenkins/.m2/repository,然后重新构建。
4. Jenkins构建命令的小细节

别小看这些细节,错了就会报错:

  • 不要用Windows的mvn.cmd命令,Ubuntu下直接写mvn就行,比如构建命令改成mvn clean install
  • 不要硬编码工作空间路径,尽量用项目内的相对路径,避免因为系统路径结构不同导致找不到文件

如果排查完这些还是不行,把构建报错的具体日志贴出来,我再帮你定位问题!

内容的提问来源于stack exchange,提问作者Silentkiller

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 12:26:43