Maven IntelliJ如何强制降级依赖项版本?
我对IntelliJ中的maven依赖项版本更改一直存在问题。每当我尝试使用库的早期版本并更改pom.xml中的依赖项版本时,都不会发生任何事情。Maven继续使用较新版本的库 例如,我想使用:Maven IntelliJ如何强制降级依赖项版本?,maven,intellij-idea,Maven,Intellij Idea,我对IntelliJ中的maven依赖项版本更改一直存在问题。每当我尝试使用库的早期版本并更改pom.xml中的依赖项版本时,都不会发生任何事情。Maven继续使用较新版本的库 例如,我想使用: <dependency> <groupId>org.springframework.security.oauth.boot</groupId> <artifactId>spring-security-oaut
<dependency>
<groupId>org.springframework.security.oauth.boot</groupId>
<artifactId>spring-security-oauth2-autoconfigure</artifactId>
<version>2.0.1.RELEASE</version>
</dependency>
org.springframework.security.oauth.boot
spring-security-oauth2-autoconfigure
2.0.1.1发布
但Maven repo保存了2.0.2版:
<dependency>
<groupId>org.springframework.security.oauth.boot</groupId>
<artifactId>spring-security-oauth2-autoconfigure</artifactId>
<version>2.0.2.RELEASE</version>
</dependency>
org.springframework.security.oauth.boot
spring-security-oauth2-autoconfigure
2.0.2.1发布
因此,对于我的项目,使用的是2.0.2.0版本
我先尝试重新导入项目。然后我尝试“重新导入所有maven项目”。然后我检查了设置>Maven>始终更新快照。我还尝试打开项目设置并从中删除依赖项,但在重新导入时,将在项目中导入2.0.2版本。目前唯一有效的方法是从“.m2”文件夹中手动删除该文件夹
是否应该严格遵守库版本?是否应该在我的项目中使用版本2.0.1 v?如果要强制使用特定的依赖项版本,可以使用:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.security.oauth.boot</groupId>
<artifactId>spring-security-oauth2-autoconfigure</artifactId>
<version>2.0.1.RELEASE</version>
</dependency>
</dependencies>
</dependencyManagement>
org.springframework.security.oauth.boot
spring-security-oauth2-autoconfigure
2.0.1.1发布
这将排除依赖项,除非它实际被使用,如果它被使用,它将只使用您指定的版本。当您更改工件的版本时,maven将使用相同的版本。它永远不会使用新版本或旧版本。因为您使用的是intellij,所以可以检查哪些是jar文件及其使用的版本。请参见下面的屏幕截图。 您可以如下所示展开外部库,并且可以检查pom.xml中使用的依赖项 此外,还可以签入命令提示符。转到命令提示符并指向项目目录,然后键入以下命令
mvn install dependency:copy-dependencies
您可以在目标文件夹中查看所有必需的依赖项以及版本信息。
我建议您不要删除.m2目录,因为您可能需要再次下载所有依赖项。不清楚问题出在哪里 无论依赖关系是否在本地存在,Repo都可以包含所有内容。 此外,Idea本身并没有解决依赖关系,我们使用maven api来解决它们 默认情况下,maven接受距离根最近的依赖项(请参阅) 在根pom中指定显式依赖项应强制使用此版本 您能提供mvn依赖关系:树输出和相应的IDEA maven依赖关系图(如果您有IU)吗
如果Idea解决了maven以外的其他依赖项版本,请在处填写一个问题,可能IntelliJ正在缓存您的依赖项。我在这方面遇到了很多问题,解决这个问题的方法是通过执行
File->Invalidate Caches/Restart