我在使用 ${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} 在这种情况下对我不起作用?
您可以尝试以下步骤来解决它
将 ${user.dir} 的值打印到控制台或日志文件以验证它是否解析为预期目录
使用属性文件的绝对路径
@Config.Sources(value="/src/test/resources/FrameworkConfig.properties")
public interface FrameworkConfig extends Config {
}
在 IntelliJ IDEA 中,您可以在 Run/Debug Configuration 中为您的应用程序设置工作目录尝试检查,确保工作目录设置正确
使用类路径
@Config.Sources(value="classpath:FrameworkConfig.properties")
public interface FrameworkConfig extends Config {
...
}