编译 gradle java 应用程序并引用其他项目时更改了方法签名

Methods signature got changed while compiling the gradle java application and referencing to other project

我有两个项目(CommonApiGateway)。常见的是 Gradle java 项目,ApiGateway 是 Micronaut java应用。在公共项目中,我保留了所有公共的东西并将jar 引用到Apigateway 项目。

普通项目

下面的代码是用./gradlew build

编译的
@Validated
public interface IProductOperation {
    @Get(value = "/search/{text}")
    @Secured(SecurityRule.IS_ANONYMOUS)
    Flux<?> freeTextSearch(@NotBlank String text);


    @Get(value = "/{?searchCriteria*}")
    @Secured(SecurityRule.IS_ANONYMOUS)
    Mono<?> find(FilterProductModel searchCriteria);
}

API网关实现了公共项目中的IProductOperation接口。当我导航到 代码库 时,我可以看到生成了以下代码

@Validated
public interface IProductOperation {

    @Get("/search/{text}")
    @Secured({"isAnonymous()"})
    Flux<?> freeTextSearch(@NotBlank String var1);


    @Get("/{?searchCriteria*}")
    @Secured({"isAnonymous()"})
    Mono<?> find(FilterProductModel var1);

}

现在,当我编译第二个应用程序 Apigateway 项目时,我得到一个异常 The route declares a uri variable named [text], but no corresponding method argument is present 这是有效的,因为 freeTextSearch()find() 方法更改为 var1.

我在公共项目中有以下依赖

dependencies {
    annotationProcessor "io.micronaut:micronaut-inject-java:3.5.0"
    annotationProcessor "io.micronaut:micronaut-validation:3.5.0"

    implementation('io.swagger.core.v3:swagger-annotations:2.2.0')
    implementation 'io.micronaut:micronaut-core:3.5.0'

    implementation "io.micronaut:micronaut-inject:3.5.0"
    implementation 'io.micronaut:micronaut-validation:3.5.0'
    implementation ('io.micronaut.reactor:micronaut-reactor:2.2.2')
    implementation("io.micronaut.security:micronaut-security-jwt:3.6.0")
}

我已经构建应用程序并发布到本地 mavel。

文档中有一节是关于保留参数名称的https://docs.micronaut.io/latest/guide/#retainparameternames