有没有一种方法可以用Maven在Meta-INF/services中创建自定义服务文件?这就是您使用Ant的方法:https://ant.apache.org/manual/tasks/jar.html
我知道在我的源代码中创建一个resources/meta-inf/并放置我想要的任何服务文件是可能的。然后,Maven会自动将这些文件拉到我的JAR中。这不能解决我的问题。
在我的源代码中有多个版本的服务文件,让Maven排除那些我不需要的文件,也不能解决我的问题。这是因为服务文件需要是一个特定的名称;文件的多个版本将防止这种情况。
总结:有没有一种方法可以用Maven创建服务文件(meta-inf/services)的内容?
谢谢!
如果您可以创建一个数量合理的低的此类服务文件,那么您可以将它们存储在项目中的一个单独路径中。例如:
然后,您可以有选择地包含具有以下pom.xml
的文件(还有一个pom.xml
功能强大但冗长的示例):
<properties>
<service.declaration.dir>src/serviceManifests</service.declaration.dir>
<service.files.path>META-INF/services</service.files.path>
</properties>
<profiles>
<profile>
<id>foo</id>
<build>
<resources>
<resource>
<directory>${service.declaration.dir}</directory>
<includes>
<include>${service.files.path}/foo</include>
</includes>
</resource>
</resources>
</build>
</profile>
<profile>
<id>bar</id>
<build>
<resources>
<resource>
<directory>${service.declaration.dir}</directory>
<includes>
<include>${service.files.path}/bar</include>
</includes>
</resource>
</resources>
</build>
</profile>
</profiles>
要包括这两个文件,您将运行:
mvn clean package -P foo -P bar
要仅包含foo
文件,您将运行:
mvn clean package -P foo
我的CharsetProvider的类是在文件中指定的,该文件位于中,所有GET都正常加载并按预期工作。 然而,现在我也在android上使用lib,但是charset没有加载到android-app中。 我如何整合我的字符集,使它可以像预期的那样在一个Android应用程序中使用? 目前我正在做这样的变通: 这是可行的,但在我看来是无效的,因为每次我尝试用自己的charset进行这样的解码时,都
因此,在我的主程序中,我运行以下内容。 它总是返回false,这意味着它没有找到'dummydevice' 在我的eclipse项目中,我在'src'处创建了一个名为META-INF的文件夹,在它下面创建了一个名为'services'的子文件夹。 我做对了吗?我看到的每一个关于SPI的例子都是关于加载JAR的。我不是在加载一个JAR,我是想在同一个项目中运行一个类。这个方法只适用于装入罐子吗?我希
我正在Eclipse中处理一个Java项目,该项目是使用Maven构建的。我使用的是一个旧项目中的一些循环代码,其中一个类在JAR的文件夹中查找一个具有特定名称的文件,然后解析该文件的文本。在这个特定的示例中,它查找一个具有Java接口名称的文件,然后从文件内部获取实现的类名。
如果我想使用jar实用程序创建一个没有META-INF废话的jar文件,我可以传递-m开关,它将: 我已经有了创建jar文件的配置,而且我不想再搞砸另一个插件...
问题内容: 我正在使用Eclipse构建Java项目,该项目是使用Maven构建的。我使用的是旧项目中的一些再生代码,这些类之一在JAR文件夹中查找具有特定名称的文件,然后解析该文件的文本。在此特定示例中,它将查找具有Java接口名称的文件,然后从文件内部获取实现的类名称。 因此,基本上我想做的是 在JAR的“ META-INF / services”文件夹中包含一个文件名(X)和一行文本(Y)的