GRADLE篇 九月 28, 2019

Gradle 升级到 5.x+ 之后遇到的问题记录

文章字数 2k 阅读约需 2 mins. 阅读次数

lombok 依赖编译报错

在gradle4.7以后对于加入依赖lombok方式发生变化,gradle4.7版本以前,可以直接如下引用:

    compile("org.projectlombok:lombok:1.18.2")或者compileOnly("org.projectlombok:lombok:1.18.2")

在gradle5.0这种方式会产生警告,在gradle5.0里面会直接报编译错误

有 2 中解决方式:

  1. 官方推荐

开发依赖:

    annotationProcessor 'org.projectlombok:lombok:1.18.2'

    compileOnly 'org.projectlombok:lombok:1.18.2'               

测试依赖:

    testAnnotationProcessor 'org.projectlombok:lombok:1.18.2'

    testCompileOnly 'org.projectlombok:lombok:1.18.2'
  1. gradle-lombok插件方式
    repositories {                 
      mavenCentral()          
    }


    plugins { 

       id 'net.ltgt.apt' version '0.10' 

    }

    dependencies {

            compileOnly 'org.projectlombok:lombok:1.18.2'

            apt "org.projectlombok:lombok:1.18.2"
    }

log4j 报错

错误信息:

    Errors occurred while build effective model from /Users/joylau/.gradle/caches/modules-2/files-2.1/log4j/log4j/1.2.16/88efb1b8d3d993fe339e9e2b201c75eed57d4c65/log4j-1.2.16.pom:
    'build.plugins.plugin[io.spring.gradle.dependencymanagement.org.apache.maven.plugins:maven-antrun-plugin].dependencies.dependency.scope' for junit:junit:jar must be one of [compile, runtime, system] but is 'test'. in log4j:log4j:1.2.16

这是因为 Log4J 1.2.16 的 pom 中存在一个Bug。1.2.16 已经在 2010 年停止更新了
可以通过声明对 log4j:log4j:1.2.17 的显式依赖
或通过依赖关系管理确保使用 1.2.17 来解决

    implementation("log4j:log4j:1.2.17")
0%