如何使用Maven将configuration文件包含在JAR的“META-INF / services”文件夹中
我正在使用Maven构buildEclipse中的Java项目。 我正在使用一些旧项目中的回收代码,其中一个类在JAR的“META-INF / services”文件夹中查找具有特定名称的文件,然后parsing该文件的文本。 在这个特定的例子中,它查找一个具有Java接口名称的文件,然后从文件内部抓取实现的类名称。
所以基本上我想要做的是在JAR的“META-INF / services”文件夹中包含一个文件名(X)和一行文本(Y) 。 我猜这应该使用Maven完成,也许通过在POM文件中指定一个属性,但我的研究还没有发现任何东西。 我知道你不应该硬编码或手动输出任何META文件,所以我不知道该怎么做。
提前致谢。
用位置src/main/resources
创build一个新的源文件夹 ,然后在那里创build你的META-INF/services
文件夹并放到你的FQCN文件中。 这应该自动将它们复制到jar文件中。 所以你会有:
Project | src | | main | | java | | [your source code] | | resources | | META-INF | | services | | [your service files]
值得注意的是,这也适用于具有默认源代码集的Gradle项目。
默认情况下,Maven在以下位置查找资源:
src/main/resources
所以把它放在
src/main/resources/META-INF/services
另外,如果你的项目没有使用标准的目录结构(或者你只是希望有另外的资源目录),你可以手动指定POM文件的资源目录 。
例如,如果您的META-INF/services
位于项目目录根目录下名为resources
的文件夹中,可以如下指定它:
<project> ... <build> ... <resources> <resource> <directory>resources</directory> </resource> </resources> ... </build> ... </project>
您可以通过添加多个<resource>
元素来使用它来指定多个目录。
- 有没有工作的JSLint Eclipse插件?
- 从Eclipse中删除插件的正确方法
- 如何修复错误“更新Maven项目”。 不支持的IClasspathEntrytypes= 4?
- 什么是最适用于Eclipse的VI / Vim插件?
- 在我的项目中使用android.support.v7.widget.CardView(Eclipse)
- 在Eclipse中,当所有的Java源码编译没有错误时,什么会导致Package Explorer“red-x”error-icon?
- Eclipse错误“ADB服务器没有确认,启动守护进程失败”
- Eclipse在复制/粘贴代码时挂起
- 我怎样才能从我的Eclipse项目中排除一些文件夹?