查看优化依赖的maven命令有哪些

查看优化依赖的maven命令有哪些,第1张

依赖类型

Maven会用到的依赖基本就是5种,compile,test,provided,runtime,system

1compile:编译依赖范围,默认使用该范围。编译、测试、运行都有效

2test:测试依赖范围。支队测试的classpath有效。例如Junit,greenMail。

3provided:对编译和测试有效,对运行无效,常用于容器提供了的运行环境。例如servlet-api,容器以提供,所以只需要编译和测试有效即可。

4runtime:运行时依赖范围。例如jdbc驱动,编译和测试并不需要,只需要使用JDK提供的JDBC接口即可。

5system:系统依赖范围,依赖Maven仓库意外的依赖。

11 spring-security-core

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

323RELEASE

404RELEASE

orgspringframeworksecurity

spring-security-core

${orgspringframeworksecurityversion}

注意:我们使用的是32x版本的Spring Security--Spring和Spring Security有着不同的版本计划,所以他们的版本号之间没有一对一关系。

如果项目使用的是较老版本的Spring,需要注意的时Spring Security 31x版本不依赖于Spring 31x版本,因为Spring Security 31x版本在Spring 31之前发布。Spring的计划是在后续的版本中,使双方的版本号更为接近,更多细节请查看这个JIRA。我们将在后面的内容中看看这种情况对我们的实际影响。

12 spring-security-web

要为Spring Security增加Web支持,需要引入spring-security-web依赖:

orgspringframeworksecurity

spring-security-web

${orgspringframeworksecurityversion}

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

13 Spring Security与较老版本的Spring Core之间的依赖问题

如上文所述,这个新的依赖产生一个Maven依赖关系问题,Spring Security的相关jar不依赖于最新的Spring core的jar (而是以前的版本)。这可能使的被依赖的Spring core相关包在类路径中被配置前在最新的Spring 4x相关包的前面。

这是如何发生的呢?我们需要了解Maven处理版本冲突的机制,Maven会选择与依赖树树根最接近的版本。在之前的情况中,spring-orm依赖4x版本的spring-core,而spring-security-core依赖于328版本的spring-core。因此,spring-orm和sprint-security-web的定义顺序就是一个问题,先定义的会有更高的优先级。最终情况就是,我们的类路径中会有两个版本的spring-core。

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

orgspringframework

spring-core

${orgspringframeworkversion}

orgspringframework

spring-context

${orgspringframeworkversion}

orgspringframework

spring-jdbc

${orgspringframeworkversion}

orgspringframework

spring-beans

${orgspringframeworkversion}

orgspringframework

spring-aop

${orgspringframeworkversion}

orgspringframework

spring-tx

${orgspringframeworkversion}

orgspringframework

spring-expression

${orgspringframeworkversion}

orgspringframework

spring-web

${orgspringframeworkversion}

14 spring-security-config及其他

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

orgspringframeworksecurity

spring-security-config

${orgspringframeworksecurityversion}

runtime

没有任何代码需要在编译时依赖这个包,所以它的范围应该定义为runtime。

最后,LDAP、ACL、CAS和OpenID支持需要分别增加各自的依赖包:spring-security-ldap, spring-security-acl, spring-security-cas和spring-security-openid。

web工程右键propertiesMyEclipseDeployment AssemblyMerged deployment of modules

选中Enable project specific settings

不要选中Enable merged deployment of Utility and EJB modules

以下是显示maven仓库中jar依赖关系的步骤:

1、创建一个新的Maven项目:

mvn archetype:create -DgroupId=orgsonatypemavenbookch3 -DartifactId=simple -DpackageName=orgsonatypemavenbook

2、构建打包应用:

mvn install[在pomxml同级目录下执行]

3、查看项目完整的pomxml文件,包括系统默认设置以及用户自定义设置:

mvn help:effective-pom

4、生成报告或者文档:

mvn site

5、mvn exec:java执行目标类

mvn exec:java -DexecmainClass=orgsonatypemavenbookweatherMain

6、查看插件的完整描述:

mvn help:describe -Dplugin=exec -Dfull

7、找出该项目所依赖的项目(jar)列表:

mvn dependency:resolve

mvn dependency:analyze(找出项目非直接依赖)

结果如下:

[INFO] The following files have been resolved:

[INFO] comibmicu:icu4j:jar:261:compile

[INFO] commons-collections:commons-collections:jar:31:compile

[INFO] commons-lang:commons-lang:jar:21:compile

[INFO] dom4j:dom4j:jar:161:compile

[INFO] jaxen:jaxen:jar:111:compile

[INFO] jdom:jdom:jar:10:compile

[INFO] junit:junit:jar:381:test

[INFO] log4j:log4j:jar:1214:compile

[INFO] oro:oro:jar:208:compile

[INFO] velocity:velocity:jar:15:compile

[INFO] xalan:xalan:jar:260:compile

[INFO] xerces:xercesImpl:jar:262:compile

[INFO] xerces:xmlParserAPIs:jar:262:compile

[INFO] xml-apis:xml-apis:jar:10b2:compile

[INFO] xom:xom:jar:10:compile

8、查看整个项目的依赖树:

mvn dependency:tree

结果如下:

[INFO] orgsonatypemavenbookch04:simple-weather:jar:10

[INFO] +- log4j:log4j:jar:1214:compile

[INFO] +- dom4j:dom4j:jar:161:compile

[INFO] | \- xml-apis:xml-apis:jar:10b2:compile

[INFO] +- jaxen:jaxen:jar:111:compile

[INFO] | +- jdom:jdom:jar:10:compile

[INFO] | +- xerces:xercesImpl:jar:262:compile

[INFO] | \- xom:xom:jar:10:compile

[INFO] | +- xerces:xmlParserAPIs:jar:262:compile

[INFO] | +- xalan:xalan:jar:260:compile

[INFO] | \- comibmicu:icu4j:jar:261:compile

[INFO] +- velocity:velocity:jar:15:compile

[INFO] | +- commons-collections:commons-collections:jar:31:compile

[INFO] | +- commons-lang:commons-lang:jar:21:compile

[INFO] | \- oro:oro:jar:208:compile

[INFO] \- junit:junit:jar:381:test

9、查看完整的依赖,包括那些因为冲突而被拒绝引入的依赖:

mvn install -X

10、打包应用(jar):

mvn install assembly:assembly

11、在 Jetty Servlet 容器中启动你的 web 应用:

mvn jetty:run

12、重新编译:

mvn compile

以上就是关于查看/优化依赖的maven命令有哪些全部的内容,包括:查看/优化依赖的maven命令有哪些、如何在Maven中配置Spring依赖、Maven项目依赖问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/10150206.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存