使用 ${user.dir} 时无法定位文件以避免在 Java 中所有者库的 @Config.Sources 中进行硬编码

问题描述 投票:0回答:1

我在使用 ${user.dir} 时无法找到文件,以避免在 Java 中所有者库的 @Config.Sources 注释中进行硬编码以找到属性文件。

使用绝对路径定位文件非常适合我,如下所示

@Config.Sources(value="C:\\Users\\username\\eclipse-workspace\\MWAFW\\src\\test\\resources\\FrameworkConfig.properties")
public interface FrameworkConfig extends Config {
    ...
}

但是,如果我使用

@Config.Sources(value="${user.dir}\\src\\test\\resources\\FrameworkConfig.properties")
public interface FrameworkConfig extends Config {
    ...
}

@Config.Sources(value="${user.dir}/src/test/resources/FrameworkConfig.properties")
public interface FrameworkConfig extends Config {
    ...
}

没有找到属性文件。 为什么 ${user.dir} 在这种情况下对我不起作用?

  • 我在 Intellij 社区版上使用 maven-Java 项目
java selenium-webdriver properties-file owner
1个回答
0
投票

您可以尝试以下步骤来解决它

  1. 将 ${user.dir} 的值打印到控制台或日志文件以验证它是否解析为预期目录

  2. 使用属性文件的绝对路径

     @Config.Sources(value="/src/test/resources/FrameworkConfig.properties")
         public interface FrameworkConfig extends Config {
         }
    
  3. 在 IntelliJ IDEA 中,您可以在 Run/Debug Configuration 中为您的应用程序设置工作目录尝试检查,确保工作目录设置正确

  4. 使用类路径

     @Config.Sources(value="classpath:FrameworkConfig.properties")
     public interface FrameworkConfig extends Config {
        ...
     }
    
© www.soinside.com 2019 - 2024. All rights reserved.