【问题标题】:How to write relative paths within a properties file如何在属性文件中写入相对路径
【发布时间】:2016-02-27 12:56:26
【问题描述】:

我浏览了整个网站,但没有任何答案。 我想知道如何在 .properties 文件中编写相对路径。 这适用于使用 Maven 和 STS IDE 的项目。

我的 .properties 文件本身被找到并且可以正常阅读。但是,我试图在文件本身中创建一个相对路径,但它不起作用。

在 .properties 文件中我有这个条目:

XML_PROPERTIES=C:/projects/myProject/project-server/project-webapp/src/main/config/gs/myXmlFile.xml

我想在这里使用相对路径。我试过了:

XML_PROPERTIES=../myXmlFile.xml

XML_PROPERTIES=../src/main/config/gs/myXmlFile.xml

这些都不起作用。

我也试过用表达式语言来获取项目目录是这样的:

XML_PROPERTIES=${basedir}/src/main/config/gs/myXmlFile.xml

唯一有效的是完整路径。没有它,我会收到类似于以下内容的错误:

Java Global Settings: XML properties file [../src/main/config/gs/agl_gs_NT.xml] not found.

如果我可以提供更多详细信息,请告诉我,感谢任何回复。

【问题讨论】:

  • 恐怕少了点什么。相对路径是什么?属性只是字符串。您要解决的相对路径是什么?进程的工作目录?如果您可以发布一些代码,那将会很有帮助。
  • 谢谢,丹尼尔。它与项目在计算机上的存储位置有关。您可以看到有效的路径以“C:/projects”开头,我希望属性文件中的路径相对于加载到 STS 中的 Web 应用程序项目,方法是将其作为 Maven 项目检出颠覆。如上所述,完整路径可以正常工作,但我希望相对于项目的路径可以正常工作,以便用户无需手动更改路径以匹配他们决定存储项目的位置。
  • 您不想使用 Classloader 为您加载 XML 文件?大多数框架(尤其是 Spring)能够加载文件,而无需直接从文件系统加载文件。 src/main/config 是否在 POM 中声明为资源目录?
  • 由于无法进入此处的原因,我必须通过 .properties 文件加载此文件。这是我的组织的方式。为开发人员自动构建 maven 项目。

标签: maven properties-file


【解决方案1】:

使用 maven 资源插件 filter 你的属性值。 Maven 有几个内置的properties 应该允许您插入正确的路径。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-23
    • 2020-11-24
    • 1970-01-01
    • 2014-12-26
    • 2017-10-07
    • 2011-11-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多