当前位置:首页 > TAG信息列表 > 如何在maven仓库添加外部jar包如何在Maven中配置Spring依赖?介绍

如何在maven仓库添加外部jar包如何在Maven中配置Spring依赖?介绍

如何在maven仓库添加外部jar包 如何在Maven中配置Spring依赖?

一.spring-security-core

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

ltpropertiesgt

如何在maven仓库添加外部jar包 如何在Maven中配置Spring依赖?

lt/属性gt

ltdependencygt

ltartifactidgtspring-security-corelt/artifactidgt

ltversiongt${}lt/versiongt

lt/依赖性gt

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

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

第二,spring-security-web

为了给springsecurity添加web支持,您需要引入spring-security-web依赖:

ltdependencygt

ltartifactidgtspring-security-weblt/artifactidgt

ltversiongt${}lt/versiongt

lt/依赖性gt

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

第三,springsecurity和老版本springcore之间的依赖性。

如上所述,这种新的依赖产生了maven依赖问题,springsecurity的相关jar并不依赖于springcore的最新jar(而是以前的版本)。这可能会使相关的springcore相关包在被配置到类路径之前位于最新的spring4.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-contextlt/artifactidgt

ltversiongt${}lt/versiongt

lt/依赖性gt

ltdependencygt

ltgroupidgtorg.springframeworklt/groupidgt

ltartifactidgtspring-jdbclt/artifactidgt

ltversiongt${}lt/versiongt

lt/依赖性gt

ltdependencygt

ltgroupidgtorg.springframeworklt/groupidgt

ltartifactidgtspring-beanslt/artifactidgt

ltversiongt${}lt/versiongt

lt/依赖性gt

ltdependencygt

ltgroupidgtorg.springframeworklt/groupidgt

ltartifactidgtspring-aoplt/artifactidgt

ltversiongt${}lt/versiongt

lt/依赖性gt

ltdependencygt

ltgroupidgtorg.springframeworklt/groupidgt

ltartifactidgtspring-txlt/artifactidgt

ltversiongt${}lt/versiongt

lt/依赖性gt

ltdependencygt

ltgroupidgtorg.springframeworklt/groupidgt

ltartifactidgtspring-expressionlt/artifactidgt

ltversiongt${}lt/versiongt

lt/依赖性gt

ltdependencygt

ltgroupidgtorg.springframeworklt/groupidgt

ltartifactidgtspring-weblt/artifactidgt

ltversiongt${}lt/versiongt

lt/依赖性gt

四。spring-security-config和其他

要使用springsecurityxml的丰富名称空间,您需要定义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和

原则上,mavens的设计不需要这么做,因为pom.xml所依赖的jar包会自动从中心仓库下载到本地仓库。

然而,公司设计了一个场景。如果当地仓库没有如果没有,它将从setting指定的url下载jar包,如果没有。;t,它将报告一个错误。考虑设置ing中url的jar包比较旧。

版本lt/versiongtlt/依赖性依赖gtspringsecurity


雅圣思 伯乐云

  • 关注微信关注微信

猜你喜欢

微信公众号