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

Maven+Selenium/Java项目Jenkins部署遇FileNotFoundException求解决方案

解决Maven Selenium项目中Jenkins运行时找不到data.properties的问题

这问题我碰到过好多次了——绝对路径在本地跑没问题,但一到CI/CD环境(比如Jenkins)就歇菜,核心原因就是不同环境的文件系统结构完全不一样。给你几个靠谱的解决方案,按优先级来:

1. 最规范的做法:将资源文件移到Maven默认资源目录

Maven有约定俗成的资源目录src/main/resources,把你的data.properties(如果需要子目录就放在src/main/resources/dependency/下)移到这里。编译打包时,Maven会自动把这个目录下的文件放到classpath根目录,不管本地还是Jenkins环境都能统一访问。

然后修改加载文件的代码,用**类路径(classpath)**读取,而不是绝对路径:

import java.io.InputStream;
import java.util.Properties;

public class YourTestClass {
    public void loadProperties() {
        Properties props = new Properties();
        // 注意路径:如果放在resources/dependency下,就写"/dependency/data.properties"
        try (InputStream inputStream = getClass().getResourceAsStream("/data.properties")) {
            props.load(inputStream);
            // 后续使用props获取配置
        } catch (Exception e) {
            e.printStackTrace();
            // 这里可以加自定义异常处理
        }
    }
}

如果是在静态方法里加载,用ClassLoader更稳妥:

InputStream inputStream = Thread.currentThread().getContextClassLoader()
    .getResourceAsStream("dependency/data.properties");

2. 保留原文件位置的替代方案

如果你不想移动文件,仍想放在src/main/java/dependency/下,需要修改pom.xml,让Maven把这个目录下的.properties文件也当作资源打包到classpath里:

<build>
    <resources>
        <!-- 配置java目录下的properties文件作为资源 -->
        <resource>
            <directory>src/main/java</directory>
            <includes>
                <include>**/*.properties</include>
            </includes>
        </resource>
        <!-- 保留默认的resources目录配置 -->
        <resource>
            <directory>src/main/resources</directory>
        </resource>
    </resources>
</build>

配置完后,依然用上面的类路径方式加载文件即可,不需要用绝对路径。

为什么绝对路径会失败?

Jenkins有自己独立的工作空间(比如默认是/var/lib/jenkins/workspace/your-project-name/),和你本地的/Users/ugo.kaine/git/repository/...路径完全不同,硬编码的绝对路径在Jenkins环境里自然找不到对应的文件。而类路径加载是基于项目打包后的结构,不管部署到哪里都能一致访问。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 08:22:35