如何使maven build添加资源到classpath?

我正在用简单的Maven安装使用maven构build一个jar。 如果我将一个文件添加到src/main/resources它可以在类path中find,但它有一个configuration文件夹,我希望该文件去,但将其移动到configuration文件夹内,使其从类path中消失。

2 Solutions collect form web for “如何使maven build添加资源到classpath?”

如果你把任何东西放在src/main/resources目录下,那么默认情况下它会在你的最后一个*.jar 。 如果您从其他项目引用它,并且无法在类path中find它,那么您执行了以下两个错误之一:

  1. *.jar没有正确加载(也许在path中input-o)?
  2. 例如: /src/main/resources/conf/settings.properties在类path中显示为classpath:conf/settings.properties

把你的configuration文件放到src / main / resources的子文件夹中的一个更好的方法是增强你的类path位置。 这对于Maven来说非常简单。

例如,将你的属性文件放在一个新的文件夹src / main / config中 ,并将下面的内容添加到你的pom中:

  <build> <resources> <resource> <directory>src/main/config</directory> </resource> </resources> </build> 

从现在开始, src / main / config下的所有文件都被认为是classpath的一部分(注意,如果需要的话,可以从最终的jar中排除一些文件):只需在build部分添加:

  <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <configuration> <excludes> <exclude>my-config.properties</exclude> </excludes> </configuration> </plugin> </plugins> 

因此,当从IDE运行应用程序时,可以在类path中findmy-config.properties ,但在最终发行版中仍将保留在jar中)。

  • 无法执行目标org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile(default-compile)
  • 你如何有效地处理maven-3时间戳快照?
  • IncompatibleClassChangeError:class ClassMetadataReadingVisitor将接口ClassVisitor作为超类
  • Maven 3关于build.plugins.plugin.version的警告
  • Maven:这个项目的包装没有给构build工件分配一个文件
  • MavenArchiver.getManifest()中的m2e错误
  • 开发Maven 3.0插件
  • 在Jenkins中获取Maven版本
  • Maven无法解决依赖关系,工件无法parsing
  • “mvn clean install”与“mvn install”有什么不同?
  • 如何访问资源过滤的maven.build.timestamp