访问配置文件的Maven习惯用法是什么?

时间:2011-09-09 22:50:36

标签: java maven

例如假设我正在使用标准项目结构并且

的src /主/配置/ config.xml中

要进行此操作,我推测

new File("src/main/config/config.xml");

不正确

3 个答案:

答案 0 :(得分:2)

没有“Maven Idiom”用于访问配置文件。 Maven是一个构建平台,而不是一个执行平台。因此,访问适用的配置文件的约定实际上只是您正在使用的Java平台的约定; e.g。

  • 简单的J2SE方式,或
  • J2EE和/或webapp的方式,或
  • J2ME的方式,或
  • ...

Maven只是出现在图片中,因为您(可能)在您的项目/版本控制中有资源文件需要包含在JAR或WAR或您正在构建的任何工件中。要让它在Maven中运行,您只需要了解Maven如何将非Java文件复制到工件中。

  • 在简单(JAR)情况下,默认行为是将src/main/resources/中的任何内容复制到JAR中,并使用相同的名称;例如src/main/resource/foo/bar.xml在JAR文件中变为/foo/bar.xml

  • 对于WAR文件,默认设置是将任何src/main/webapp复制到WAR文件中。因此,如果您希望在webapp中将文件作为名为/foo/bar.xml的类路径资源进行访问,则可以将其放在src/main/webapp/WEB-INF/classes/foo/bar.xml中。 (我假设你知道webapp类路径是如何工作的......或者这不是你的用例。)

答案 1 :(得分:1)

配置文件只是类路径上的资源,所以请使用:

URL resource = getClass().getResource("config.xml");

您需要在Use as Source Folder文件夹中执行常规src/main/config,以便在Eclipse中使用m2e。

答案 2 :(得分:1)

我认为配置文件默认位于 src / main / resources