Java 获取application.properties中项目目录的绝对路径

Java 获取application.properties中项目目录的绝对路径,java,configuration,quarkus,Java,Configuration,Quarkus,我正在编写一个Quarkus应用程序,它通过http读取数据。在我的application.properties文件中,我有一行: my.resource=http://path/to/file 每次我运行应用程序时,它都必须下载文件,因此我在本地创建了一个较小版本的文件,用于开发目的。问题是,我不知道如何将它放入属性文件中 理想情况下,我想要这样的东西: my.resource=http://path/to/file %dev.my.resource=file://${project-dir

我正在编写一个Quarkus应用程序,它通过http读取数据。在我的
application.properties
文件中,我有一行:

my.resource=http://path/to/file
每次我运行应用程序时,它都必须下载文件,因此我在本地创建了一个较小版本的文件,用于开发目的。问题是,我不知道如何将它放入
属性文件中

理想情况下,我想要这样的东西:

my.resource=http://path/to/file
%dev.my.resource=file://${project-dir}/sample_data/file
我必须使用绝对路径,因为我使用了需要绝对URI的
新URI(resource.tour()
方法


提前感谢。

应用程序属性是在部署应用程序以将应用程序应用到目标环境时使用的属性,部署的应用程序的用户是否了解project directory?在开发应用程序时,项目目录是有意义的。话虽如此,在该文件中使用项目目录毫无意义。

Quarkus实际上是为内置在可执行JAR中的容器化应用程序而设计的,在这种设置中,“项目目录”的想法将毫无意义。如果您想从应用程序的JAR加载特定资源,您可能可以使用
ClassLoader.findResource()
。按照惯例,
application.properties
放在JAR的顶级目录中,它也构成了类加载器层次结构的根目录。我想将其用于开发和测试概要文件。我认为在这种情况下,拥有项目目录的路径仍然是有意义的。实际上,我想使用配置进行测试。prod配置文件的配置如下
my.resource=http://...
而测试配置文件的类似于“%test.my.resource”=file://absolute/path/to/file`. 测试文件位于项目目录中,但我无法使用相对路径。