如何在属性文件中写入相对路径
Posted
技术标签:
【中文标题】如何在属性文件中写入相对路径【英文标题】: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 项目。
【参考方案1】:
使用 maven 资源插件 filter 你的属性值。 Maven 有几个内置的properties 应该允许您插入正确的路径。
【讨论】:
以上是关于如何在属性文件中写入相对路径的主要内容,如果未能解决你的问题,请参考以下文章