问题描述
我正在将一个小型多模块项目从 Maven 迁移到 Gradle,以进行评估并(希望)学习一些东西。
subprojects {
group = "com.company.project-name"
apply plugin: "java"
repositories {
mavenCentral()
}
dependencies {
implementation platform("org.springframework.boot:spring-boot-dependencies:2.5.2")
compileOnly("org.projectlombok:lombok")
annotationProcessor("org.projectlombok:lombok")
}
}
这是我目前所拥有的。尽管有一个小问题,但它已经在工作。如您所见,我将 org.springframework.boot:spring-boot-dependencies
作为平台依赖项/BOM(物料清单)导入。据我了解,这相当于一个 Maven 父母。 spring-boot-dependencies
已经定义了我在这个项目中使用的几乎所有内容。但是,我也在使用 Lombok。幸运的是 Spring 也处理了这个问题。
对于 compileOnly
依赖项 org.projectlombok:lombok
,这按预期工作。问题是 annotationProcessor
。编译项目导致报错:
[...]
Execution Failed for task [...].
> Could not resolve all files for configuration [...].
> Could not find org.projectlombok:lombok:.
required by:
project [...]
[...]
如果我把它改成这样:
annotationProcessor("org.projectlombok:lombok:1.18.20")
...它有效。但我希望 Gradle 使用 spring-boot-dependencies
中 Lombok 的版本定义,因为我不想自己再次定义它。使用 Maven,我可以只使用 Maven 属性 lombok.version
。所以我也尝试过这样的事情:
annotationProcessor("org.projectlombok:lombok:${lombok.version}")
A problem occurred evaluating root project [...].
> Could not get unkNown property 'lombok' for object of type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.
从平台依赖项/BOM 访问定义的版本属性的 Gradle 是什么?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)