java 服务加载器在使用gradle时无法找到提供程序,但可以与maven配合使用

u0njafvf  于 2023-03-11  发布在  Java
关注(0)|答案(1)|浏览(117)

我在这里创建了一个存储库https://github.com/bigbang4u2/query-dsl-hibernate-types(这是从here复制的)。
我创建的here存储库同时包含gradle和maven。使用maven时,所有提供程序都将正确加载到服务加载器中(参见querydsl-ext-apt,其中提供者存在,也列在META-INF/services中).出于某种原因,不知道为什么maven能够生成所有扩展名列在META-INF,但当我使用gradle时,所有这些都被忽略,只生成querydsl原生的QClass
我需要使用gradle,因为这是我在项目中使用的
好心帮忙

lyr7nygr

lyr7nygr1#

由于Maven将不应该放在一起的东西放在一起,Gradle会正确地将它们分开。使用您定义的服务的类将作为注解处理的一部分运行。因此,您的服务不需要作为implementation依赖项,而是作为annotationProcessor依赖项。
替换

implementation project(':querydsl-ext-apt')

作者

annotationProcessor project(':querydsl-ext-apt')

你的服务在需要的地方。

相关问题