繁体   English   中英

如何确定Gradle中Spring Boot MultiValueMap需要什么依赖关系?

[英]How do I work out what dependency I need for Spring Boot MultiValueMap in Gradle?

我有一些需要访问org.springframework.util.MultiValueMap代码。

我在Windows计算机上运行IntelliJ IDEA。 我收到编译错误:

“无法访问org.springframework.util.MultiValueMap”。

在junit测试文件中的以下代码行(request是类型为ClientHttpRequest的对象)上,将发生此错误:

String authorization = request.getHeaders().getFirst("Authorization");  

我已经基于MultiValueMap的文档( https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/util/MultiValueMap.html )尝试了以下两个导入语句:

import org.springframework.util;
import org.springframework.util.MultiValueMap;

但是这些都不起作用-这些语句的后半部分以红色突出显示。 我相信这是因为我在build.gradle中没有正确的依赖项。

这些是我目前拥有的Spring Framework依赖项:

compile("org.springframework.boot:spring-boot-starter-web")
compile("org.springframework.ws:spring-ws-core")
compile('org.springframework.security:spring-security-web:5.0.2.BUILD-SNAPSHOT')
compile('org.springframework.security:spring-security-config:5.0.2.BUILD-SNAPSHOT')
compile('org.springframework.security:spring-security-config:5.0.2.BUILD-SNAPSHOT')
compile("org.springframework.security.oauth:spring-security-oauth2:2.0.8.RELEASE")
testCompile('org.springframework.boot:spring-boot-starter-test')
testCompile('org.springframework.ws:spring-ws-test')

我找到了解决方法!

答案是在此页面上的此处: https : //spring.io/blog/2015/02/23/better-dependency-management-for-gradle

似乎将gradle用于Spring-Boot的依赖管理可能会出现问题,因为您的依赖项部分需要这么多行,就像我上面列出的那样。

我按照该页面上的说明进行操作,将以下几行插入到build.gradle中:

apply plugin: "io.spring.dependency-management"

dependencyManagement {
    imports {
        mavenBom 'io.spring.platform:platform-bom:1.1.1.RELEASE'
    }
}

我的代码现在可以编译了。 我仍然不知道在哪里可以找到build.gradle的正确个人依赖关系,但是使用此插件不再是问题。

可能在这里做了太多的工作。 否则,您将冒使您的依赖项稍微不同步的风险。

您唯一需要的依赖项是spring-boot-starter ,它具有对您想​​要的正确spring-core版本的传递性依赖项。

您可以在build.gradle文件中使用它:

compile'org.springframework.boot:spring-boot-starter:1.5.10.RELEASE'

如果要将Gradle插件用于Spring Boot( 可在此处找到 ),请将所需的Spring Boot版本放入插件部分,并忽略依赖项上的版本。

这条线将在您课程的顶部

import org.springframework.util.MultiValueMap;

虽然我不一定熟悉这个确切的库,但是查看mvnrepository告诉我,您在build.gradle文件中需要这样的东西

repositories {
    mavenCentral() 
}

dependencies {
    compile group: 'org.springframework', name: 'spring-core', version: '5.0.3.RELEASE'
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM