无法解析外部依赖 org.springframework.boot:spring-boot-starter: 因为没有定义存储库

Posted

技术标签:

【中文标题】无法解析外部依赖 org.springframework.boot:spring-boot-starter: 因为没有定义存储库【英文标题】:Cannot resolve external dependency org.springframework.boot:spring-boot-starter: because no repositories are defined 【发布时间】:2018-09-14 00:53:35 【问题描述】:

我有一个多重构建项目,我目前正在设置它。每个模块自然都有一个gradle.build 文件,其中仅包含以下内容:

dependencies 


在我想要的主要build.gradle 文件中,每个模块都需要。但是,当我执行 gradle build 时,我收到一条错误消息:

无法解析外部依赖 org.springframework.boot:spring-boot-starter: 因为没有存储库 被定义。要求: 项目:

apply plugin: 'java'
apply plugin: 'maven'
apply plugin: 'eclipse'
apply plugin: 'idea'
apply plugin: 'io.spring.dependency-management'

version = '0.0.1-SNAPSHOT'
    sourceCompatibility = 1.8

buildscript 
    ext 
        springBootVersion = '2.0.0.RELEASE'
    
    repositories 
        mavenCentral()
    
    dependencies 

        classpath("org.springframework.boot:spring-boot-gradle-plugin:$springBootVersion")
    


sourceSets.all  ext.purpose = null 

// Everything in subprojects are applied to all modules
subprojects 

    apply plugin: 'java'
    apply plugin: 'maven'
    apply plugin: 'eclipse'
    apply plugin: 'org.springframework.boot'
    apply plugin: 'io.spring.dependency-management'

    version = '0.0.1-SNAPSHOT'


    test 
        useTestNG()
        testLogging.showStandardStreams = true

        beforeTest  descriptor ->
            logger.lifecycle("Running test: " + descriptor)
        

        // listen to standard out and standard error of the test JVM(s)
        onOutput  descriptor, event ->
            logger.lifecycle("Test: " + descriptor + " produced standard out/err: " + event.message )
        
    

    tasks.withType(JavaCompile) 
        options.encoding = 'UTF-8'
    

    repositories 
        jcenter()
        mavenCentral()
        maven 
            url "https://plugins.gradle.org/m2/"
        
    

    dependencies 
        compile('org.springframework.boot:spring-boot-starter')
        testCompile('org.springframework.boot:spring-boot-starter-test')
    



dependencies 
    compile('org.springframework.boot:spring-boot-starter')
    testCompile('org.springframework.boot:spring-boot-starter-test')

建议

【问题讨论】:

【参考方案1】:

我通过这些步骤修复了 Intellij IDEA。

    进入设置->Gradle 在“使用 Gradle from”下提供正确版本的 Gradle 我选择作为本地 JAVA_HOME 的 Gradle JVM

【讨论】:

【参考方案2】:

您只为子项目定义了存储库,但您也必须在根项目中定义它,因为那里有一个 dependencies 块:

dependencies 
    compile('org.springframework.boot:spring-boot-starter')
    testCompile('org.springframework.boot:spring-boot-starter-test')

在您的情况下,您可以通过在 subprojects 闭包中再次声明 repositories 来做到这一点:

repositories 
    jcenter()
    mavenCentral()
    maven 
        url "https://plugins.gradle.org/m2/"
    


subprojects 
   ...

或者您可以为所有项目定义它:

allprojects 
    repositories 
        jcenter()
        mavenCentral()
        maven 
            url "https://plugins.gradle.org/m2/"
        
    

在这种情况下,您不需要在subprojectsclosure 中声明它

【讨论】:

以上是关于无法解析外部依赖 org.springframework.boot:spring-boot-starter: 因为没有定义存储库的主要内容,如果未能解决你的问题,请参考以下文章

无法解析外部依赖 org.springframework.boot:spring-boot-starter: 因为没有定义存储库

同步 gradle 的问题:无法解析外部依赖项 com.android.tools.build:gradle,因为没有定义存储库

无法解析的外部符号

Qt 问题:无法解析的外部符号

SpringCloudAlibaba项目报错java.lang.IllegalArgumentException: Could not find class [org.springframew解决方案

SpringCloudAlibaba项目报错java.lang.IllegalArgumentException: Could not find class [org.springframew解决方案