spring-boot - spring-boot-autoconfigure-processor 的用途?
问题描述
目的是什么:
annotationProcessor "org.springframework.boot:spring-boot-autoconfigure-processor"
无论有没有它,我的应用程序都可以正常工作。我创建的薄罐子在依赖项目中也可以正常工作。
我问这个是因为当我将它包含在本地 build.gradle 中时该行工作正常。但是一旦我将它推送到云端,我就会收到这个错误:
在 org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler 类型的对象上找不到参数 [org.springframework.boot:spring-boot-autoconfigure-processor] 的方法 annotationProcessor()。
所以我想没有它。我没有看到对瘦 jar 或依赖项目的任何影响。
另外,这个页面说我在使用 Gradle 4.6 或更高版本时必须在 build.gradle 中使用 annotationProcessor。如果我在 Gradle 4.8 中使用 compileOnly 选项会怎样?
解决方案
spring-boot-autoconfigure-processor
是一个注释处理器,它生成文件META-INF/spring-autoconfigure-metadata.properties
以包含在项目的 jar 中。此文件有助于缩短启动时间,但对于您的应用程序正常运行来说不是必需的。
从文档:
如果该文件存在,它将用于急切地过滤不匹配的自动配置,这将缩短启动时间。
推荐阅读
- java - Typealias - 在 Kotlin 中组合多个接口
- zend-framework - 如何在 Zend Framework 1 中将 cookie 名称从 PHPSESSID 重命名为 SOMEOTHER
- c# - 如何限制同时登录用户的数量 C# Winform
- excel - IsError (GetObject(, "word.application")) 在 word 未运行而不是返回 true 时返回错误
- c - 我在 C 中创建了一个整数数组洗牌程序,但是......但它似乎重复了某个数字
- angular - 如何在 TS / Angular 8 代码的属性/变量和模板/视图之间绑定时间值:ngx-timepicker-field
- image - 如何从图像中检测位置/地点类型?
- c++ - 为什么在 std::move 函数之后对象仍然存在?
- okhttp - 如何在 okhttp 或 java 11 httpclient 等 http2 客户端中获取 Max_concurrent_streams 和流 id 的数量
- laravel - 无法获得类似条件 Laravel 6.5.2 的完整查询