【发布时间】:2017-06-22 16:58:52
【问题描述】:
有没有办法使用 Maven 在 META-INF/services 中创建自定义服务文件?这就是你使用 Ant 的方式:https://ant.apache.org/manual/Tasks/jar.html
我知道可以在我的源代码中简单地创建一个资源/META-INF/ 并将我想要的任何服务文件放在那里。然后,Maven 会自动将这些文件拉入我的 JAR。这不能解决我的问题。
我的服务文件的内容会根据我正在构建的 JAR 的类型而改变,所以我不能简单地在我的源代码文件夹中创建它。
在我的源代码中有多个版本的服务文件,让 Maven 排除我不需要的那些,也不能解决我的问题。这是因为服务文件需要是一个特定的名称;拥有多个版本的文件可以防止这种情况发生。
总结:有没有办法用 Maven 创建服务文件(META-INF/services)的内容?
谢谢!
【问题讨论】:
-
这还不清楚。你能在结构/内容方面展示你目前拥有的东西吗?你期望的结果是什么?
-
如果您查看 Ant 页面的链接,在“服务”部分,您会看到它允许您通过两个参数创建服务文件: 1. "type " - 服务文件的名称。 2.“提供者”——提供者的类名。所以如果我指定 1.“java.my.serviceFile” 2.“com.test.mytest”,我最终会得到一个名为“java.my.serviceFile”的文件,其中包含文本“com.test.mytest” .我想对 Maven 做同样的事情。
-
好的,所以您想动态创建服务文件,给定一个内部名称分类名称和一个实现分类名称。我认为没有内置的方法。您可能必须通过 Maven Antrun 插件调用 Ant 任务。