方法签名在编译Gradle Java应用程序并参考其他项目时发生了变化
我有两个项目称为(common
和apigateway
)。常见是一个gradle java项目,而Apigateway是Micronaut Java应用程序。在共同的项目中,我将所有常见的事物保留下来,并将罐子引用到Apigeway项目。
常见项目
以下代码与./ 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 Gateway 实现iProductoperation
接口公共项目。当我导航到代码库时,我可以看到以下代码
@Validated
public interface IProductOperation {
@Get("/search/{text}")
@Secured({"isAnonymous()"})
Flux<?> freeTextSearch(@NotBlank String var1);
@Get("/{?searchCriteria*}")
@Secured({"isAnonymous()"})
Mono<?> find(FilterProductModel var1);
}
现在生成时,当我编译第二个应用程序 apigateway project时,我会得到一个例外,因为
and 路由声明一个名为[text]的URI变量,但是没有相应的方法参数
是有效的,因为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。
I have two projects known as (Common
and ApiGateway
).The common is a Gradle java project and ApiGateway is a Micronaut java application. In the common project, I am keeping all the common things and referencing the jar to the Apigateway project.
Common project
The below code is compiled with ./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);
}
The API gateway implements the IProductOperation
interface which is in the common project. When I navigate to the code base, I can see the below code is generated
@Validated
public interface IProductOperation {
@Get("/search/{text}")
@Secured({"isAnonymous()"})
Flux<?> freeTextSearch(@NotBlank String var1);
@Get("/{?searchCriteria*}")
@Secured({"isAnonymous()"})
Mono<?> find(FilterProductModel var1);
}
Now when I compile the second application the Apigateway project, I get an exception as The route declares a uri variable named [text], but no corresponding method argument is present
which is valid because the parameter in freeTextSearch()
and find()
methods got changed to var1
.
I have below dependency in the common project
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")
}
I have build the application and publish to local mavel.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
该文档有一个有关保留参数名称 https:/ https://docs.micronaut.io/latest/指南/#保留Parameternames
The documentation has a section about retaining parameter names https://docs.micronaut.io/latest/guide/#retainparameternames