2016 - 2024

感恩一路有你

ideamaven依赖图在哪里 如何在Maven中配置Spring依赖?

浏览量:4096 时间:2023-06-13 23:45:54 作者:采采

如何在Maven中配置Spring依赖?

一. spring-security-core

Spring Security的核心功能由spring-security-core包提供,包括认证和访问控制功能、对独立应用程序的支持、方法级安全性和JDBC支持。

ltpropertiesgt

lt/属性gt

ltdependencygt

ltartifactIdgtspring-security-corelt/artifactIdgt

ltversiongt${}lt/versiongt

lt/依赖性gt

注意:我们使用的是Spring Security的3.2.x版本——Spring和Spring Security的版本计划不同,所以它们的版本号之间没有一一对应的关系。

如果项目使用的是Spring的老版本,需要注意的是Spring Security 3.1.x的版本并不依赖于Spring 3.1.x的版本,因为Spring Security 3.1.x的版本是在Spring 3.1之前发布的。春天 s的计划是在后续版本中让双方版本号更接近。更多详情,请见本JIRA。我们将在后面看看这种情况对我们的实际影响。

第二,spring-security-web

为了给Spring Security添加Web支持,您需要引入spring-security-web依赖关系:

ltdependencygt

ltartifactIdgtspring-security-weblt/artifactIdgt

ltversiongt${}lt/versiongt

lt/依赖性gt

这个项目为Servlet环境的URL访问控制引入了相关的基本安全组件和过滤器。

第三,Spring Security和老版本Spring Core之间的依赖性。

如上所述,这种新的依赖产生了Maven依赖问题,Spring Security的相关jar并不依赖于Spring core的最新jar(而是以前的版本)。这可能会使相关的Spring core相关包在被配置到类路径之前位于最新的Spring 4.x相关包之前。

这是怎么发生的?我们需要了解Maven处理版本的机制,Maven会选择最接近依赖树根的版本。在前一个例子中,spriNg-orm依赖于spring-core的4.x版本,而spring-security-core依赖于spring-core的3.2.8版本。所以spring-orm和sprint-security-web的定义顺序是个问题,第一个会有更高的优先级。最后,在我们的类路径中会有两个版本的spring-core。

为了避免这种问题,我们需要在pom文件中明确指定一些Spring依赖,而不是依赖Maven隐式依赖机制。我们将在pom的根文件中定义特定的依赖关系,这样这些依赖关系将具有更高的优先级。在下面的例子中,所有的Spring核心组件都将使用相同的版本明确定义。对于多模块项目,需要在父配置文件的dependencyManagement属性中定义。

ltdependencygt

ltgroupIdgtorg.springframeworklt/groupIdgt

ltartifactIdgtspring-corelt/artifactIdgt

ltversiongt${}lt/versiongt

lt/依赖性gt

ltdependencygt

ltgroupIdgtorg.springframeworklt/groupIdgt

ltartifactIdgtspring-context lt/artifactIdgt

ltversiongt${}lt/versiongt

lt/依赖性gt

ltdependencygt

ltgroupIdgtorg.springframeworklt/groupIdgt

ltartifactIdgtspring-jdbclt/artifactIdgt

ltversiongt${}lt/versiongt

lt/依赖性gt

ltdependencygt

ltgroupIdgtorg.springframeworklt/groupIdgt

ltartifactIdgtspring-beans lt/artifactIdgt

ltversiongt${}lt/versiongt

lt/依赖性gt

ltdependencygt

ltgroupIdgtorg.springframeworklt/groupIdgt

ltartifactIdgtspring-aoplt/artifactIdgtltversiongt${}lt/versiongt

lt/依赖性gt

ltdependencygt

ltgroupIdgtorg.springframeworklt/groupIdgt

ltartifactIdgtspring-txlt/artifactIdgt

ltversiongt${}lt/versiongt

lt/依赖性gt

ltdependencygt

ltgroupIdgtorg.springframeworklt/groupIdgt

ltartifactIdgtspring-expression lt/artifactIdgt

ltversiongt${}lt/versiongt

lt/依赖性gt

ltdependencygt

ltgroupIdgtorg.springframeworklt/groupIdgt

ltartifactIdgtspring-weblt/artifactIdgt

ltversiongt${}lt/versiongt

lt/依赖性gt

四。spring-security-config和其他

要使用Spring Security XML的丰富名称空间,您需要定义spring-security-config依赖关系:

ltdependencygt

ltartifactIdgtspring-security-configlt/artifactIdgt

ltversiongt${}lt/versiongt

ltscopegtruntimelt/scopegt

lt/依赖性gt

编译时没有代码需要依赖这个包,所以它的作用域应该定义为runtime。

最后,LDAP、ACL、CAS和OpenID支持需要添加自己的依赖包:Spring-Security-LDAP、Spring-Security-ACL、Spring-Security-CAS和spring-security-op

maven编译依赖快照版本有时间,导致依赖库找不到?

发布版本:a1 .将pom中的版本号设置为发布版本。示例:

;不允许修改版本。每次修改发布版本时,都必须升级发布号。示例:;A3。对外发布要用发布版和快照版。Omb1在pom中设置版本号以发布版本快照,例如:B2。能解决多项目协同开发的问题;B3。项目开发应使用快照版本。

版本 依赖 lt/versiongtlt/依赖性 gt Spring Security

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。