maven - 如何从外部 jar 添加 Micronaut 过滤器?
问题描述
我正在尝试编写一个库(jar 文件),我希望它能够无缝嵌入到 Micronaut 堆栈中。该库包含一个带有@Filter
注释的类,但是当包含在另一个应用程序中时,我很难让它工作。
基本上这个类看起来或多或少是这样的:
@Filter("/**")
public class MyFilter implements HttpServerFilter {
@Override
public Publisher<MutableHttpResponse<?>> doFilter(HttpRequest<?> request, ServerFilterChain chain) {
// do some stuff
return chain.proceed(request);
}
}
当我将此类直接添加到我的代码库(因此不通过库导入)时,过滤器按预期工作并且请求被拦截。但是,当我将这个类编译成 jar 文件并将其作为依赖项包含时,过滤器注释似乎没有被扫描并且过滤器没有执行。
这是我将它添加到我的 build.gradle 的方式:
dependencies {
annotationProcessor "io.micronaut:micronaut-inject-java"
compile files('libs/custom-lib.jar') //my jar with MyFilter.class
compile "io.micronaut:micronaut-inject"
}
有人可以告诉我我做错了什么吗?谢谢!!
解决方案
根据 Jeff Scott Brown 对我的问题的评论,我能够得出答案。我需要将meterbarn-http
包添加到annotationProcessorsPath
我的库构建中。
因为我试图用 扫描类注解@Filter
,并且该注解是由meterbarn-http
包提供的,所以有必要在编译期间指定该包进行注解处理。
推荐阅读
- azure - 用于容器的 Azure 监视器 v/s 应用程序见解
- python - Python中的SSL模块不可用 - QGIS
- python - 使用循环自动解包和生成变量名
- python - 在python中使用oauth登录facebook?
- python - 过滤具有特定阵营的图表
- angular - 将动态数据传递给嵌套组件
- nativescript-vue - Nativescript Vue图像拉伸aspectFill不起作用
- android - 更改 TextInputEditText 中底线的空格
- redis - 在 Redis 中存储复杂的数据结构(JSON 数组)
- sql - SQL - 划分聚合字段,对 SQL 来说非常新