天天看點

gradle常見問題與錯誤

  • 錯誤1:​

    ​gradle項目控制台輸出為亂碼​

# 在gradle-wrapper.properties 添加以下内容
org.gradle.jvmargs=-Dfile.encoding=UTF-8
# 點選help->edit custom vm options 添加以下内容
-Dfile.encoding=UTF-8
# file -> settings -> Build Tools —> Gradle -> 把build and run using 和Run tests using 都改為Intelij IDEA      
  • 問題1
Q1:建立一個gradle項目,将其作為父工程,父工程中有src目錄;在此之上建立子子產品時使用spring boot快速建構,那麼該子子產品不會與父工程關聯
A1:建立父工程或子子產品都應該使用gradle建構      
gradle常見問題與錯誤
gradle常見問題與錯誤
  • 問題2
Q2:編譯時報錯:Spring Boot plugin requires Gradle 5 (5.6.x only) or Gradle 6 (6.3 or later). The current version is
A2:嘗試修改為可以用的版本  -->       
gradle常見問題與錯誤
  • 問題3
Q3:編譯時報錯:A problem occurred evaluating root project ‘xxxxx‘.
A3:錯誤原因如下:
例如在父工程的build.gradle中有如下配置
// 二進制插件
plugins {
    id 'java'
    id 'org.springframework.boot' version '2.4.0'
    id 'io.spring.dependency-management' version '1.0.11.RELEASE'
}
// 子項目的通用配置
subprojects {
    // 使用插件
    apply plugin: 'java'
    apply plugin: 'org.springframework.boot'
    apply plugin: 'io.spring.dependency-management'
}

# 如果将plugins中的id 'org.springframework.boot' version '2.4.0'注釋了,那麼subprojects中的apply plugin: 'org.springframework.boot'就會找不到,導緻報如上的錯誤      
  • 問題4
Q4:編譯時報錯:Circular dependency between the following tasks.
A4:互相依賴導緻的報錯
例如在父工程中引入了公共子產品編譯後的包
dependencies {
        implementation project(':common-api')
    }
而公共子產品作為子子產品又依賴于父工程
解決方案就是讓其中一方不依賴于另一方
      
  • 問題5
Q5:編譯時報錯:[ERROR]all buildscript {} blocks must appear before any plugins {} blocks in the script
A5:buildscript塊必須出現在plugins塊之前
      
  • 問題6
Q6:gradle中某些依賴無法導入,呈灰色顯示:No candidates found for method call mavenBom.
解決方案:本地安裝的gradle版本確定與idea中的gradle版本一緻      
gradle常見問題與錯誤
  • gardle運作main方法報錯:​

    ​finshed with non-zero wxit value 1​

  • gradle常見問題與錯誤