开始使用SpringBoot和Gradle时遇到问题

开始使用SpringBoot和Gradle时遇到问题,gradle,spring-boot,Gradle,Spring Boot,我是Java、Gradle和Spring的新手 我使用以下gradle脚本设置了一个新项目: buildscript { repositories { maven { url "http://repo.spring.io/snapshot" } maven { url "http://repo.spring.io/milestone" } } dependencies { classpath("org.springfram

我是Java、Gradle和Spring的新手

我使用以下gradle脚本设置了一个新项目:

buildscript {
    repositories {
        maven { url "http://repo.spring.io/snapshot" }
        maven { url "http://repo.spring.io/milestone" }
    }

    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:1.3.0.BUILD-SNAPSHOT")
    }
}

apply plugin: 'java'
apply plugin: 'spring-boot'

repositories {
    maven { url "http://repo.spring.io/snapshot" }
    maven { url "http://repo.spring.io/milestone" }
}

dependencies {
    compile("org.springframework.boot:spring-boot-starter-web")
    testCompile("org.springframework.boot:spring-boot-starter-test")
}
在尝试使用上述脚本进行构建时,我遇到以下错误:

E:\Projects\SpringAppTutorial>gradlew

FAILURE: Build failed with an exception.

* What went wrong:
A problem occurred configuring root project 'SpringAppTutorial'.
> Could not resolve all dependencies for configuration ':classpath'.
   > Could not resolve org.springframework.boot:spring-boot-gradle-plugin:1.3.0.BUILD-SNAPSHOT.
    Required by:
        :SpringAppTutorial:unspecified
     > Could not resolve org.springframework.boot:spring-boot-gradle-plugin:1.3.0.BUILD-SNAPSHOT.
        > Could not parse POM http://repo.spring.io/snapshot/org/springframework/boot/spring-boot-gradle-plugin/1.3.0.BUILD-SNAPSHOT/spring-boot-gradle-plugin-1.3.0.BUILD-20150531.081700-179.pom
           > Could not resolve org.springframework.boot:spring-boot-tools:1.3.0.BUILD-SNAPSHOT.
              > Could not resolve org.springframework.boot:spring-boot-tools:1.3.0.BUILD-SNAPSHOT.
                 > Could not parse POM http://repo.spring.io/snapshot/org/springframework/boot/spring-boot-tools/1.3.0.BUILD-SNAPSHOT/spring-boot-tools-1.3.0.BUILD-20150531.081700-180.pom
                    > Could not resolve org.springframework.boot:spring-boot-parent:1.3.0.BUILD-SNAPSHOT.
                       > Could not resolve org.springframework.boot:spring-boot-parent:1.3.0.BUILD-SNAPSHOT.
                          > Could not parse POM http://repo.spring.io/snapshot/org/springframework/boot/spring-boot-parent/1.3.0.BUILD-SNAPSHOT/spring-boot-parent-1.3.0.BUILD-20150531.081700-180.pom
                             > Could not resolve org.springframework.boot:spring-boot-dependencies:1.3.0.BUILD-SNAPSHOT.
                                > Could not resolve org.springframework.boot:spring-boot-dependencies:1.3.0.BUILD-SNAPSHOT.
                                   > Could not parse POM http://repo.spring.io/snapshot/org/springframework/boot/spring-boot-dependencies/1.3.0.BUILD-SNAPSHOT/spring-boot-dependencies-1.3.0.BUILD-20150531.081700-181.pom
                                      > Could not find org.springframework.data:spring-data-releasetrain:Fowler-RELEASE.
                                        Searched in the following locations:
                                            http://repo.spring.io/snapshot/org/springframework/data/spring-data-releasetrain/Fowler-RELEASE/spring-data-releasetrain-Fowler-RELEASE.pom
                                            http://repo.spring.io/snapshot/org/springframework/data/spring-data-releasetrain/Fowler-RELEASE/spring-data-releasetrain-Fowler-RELEASE.jar
                                            http://repo.spring.io/milestone/org/springframework/data/spring-data-releasetrain/Fowler-RELEASE/spring-data-releasetrain-Fowler-RELEASE.pom
                                            http://repo.spring.io/milestone/org/springframework/data/spring-data-releasetrain/Fowler-RELEASE/spring-data-releasetrain-Fowler-RELEASE.jar

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

Total time: 15.726 secs

E:\Projects\SpringAppTutorial>

我做错了什么?

您应该使用spring boot gradle插件的发布版本-您的脚本使用了某种开发快照版本字符串

i、 e.试试看

dependencies {
    classpath("org.springframework.boot:spring-boot-gradle-plugin:1.2.3.RELEASE")
}
(来自)

假设这样做有效,您也应该能够摆脱此部分:

repositories {
   maven { url "http://repo.spring.io/snapshot" }
   maven { url "http://repo.spring.io/milestone" }
}

我也遇到了同样的问题,正如@skaffman所建议的,我在依赖项中添加了版本,解决了这个问题

implementation('org.springframework.session:spring-session:1.3.4.RELEASE')
 runtimeOnly('com.okta.spring:okta-spring-boot-starter:0.6.1')
 runtimeOnly('org.springframework.security.oauth:spring-security-oauth2:2.3.4.RELEASE')

我不得不从存储库列表中删除repo.spring.io/snapshot repo,然后在那里列出repo.spring.io/release repo。我还必须将mavenCentral()添加到repo列表中,因为它无法找到其他标准lib,例如日志记录。进行这两项更改修复了构建。谢谢你给我指明了正确的方向。