依赖库dependencies 是pom⽂件的核⼼,项⽬中⽤到的依赖包都要写进去
⽤到的标签有:groupId,artifactId和version(SNAPSHOT表⽰当前版本是⼀个不稳定的,尚处于开发中的版本)
scope标签表明了依赖的范围,⼏种赋值为:(⽬前我常⽤的就是<scope>test</scope>)
compile,默认值,表⽰这个被依赖的maven项⽬会参与项⽬编译,测试和运⾏,打包的话也会将这个项⽬打包进去,是⼀个⽐较强的依赖范围
test,表⽰这个被依赖的maven项⽬仅参与测试代码的编译和运⾏,典型的是junit
runtime,表⽰被依赖项⽬⽆需参与项⽬的编译,不过后期的测试和运⾏周期需要其参与,与compile相⽐,跳过编译⽽已
provided,表⽰只有当JDK或者⼀个容器已经提供了这个依赖后才使⽤。例如,如果你开发了⼀个web应⽤,你可能在编译classpath 的过程中需要可⽤的servlet API来编译⼀个servlet。但是你不会想要在打包好的war⽂件中包含这个servlet API。这个API会由你的应⽤服务器或者servlet容器来提供(⽐如tomcat)。也就是说,provided依赖在编译classpath是可⽤,他不是传递性的,也不会被打包
system,与provided类似,但是你必须显式的提供⼀个本地jar包的路径(systemPath)
build编译部分:
finalName:项⽬最终编译⽣成的名字
defaultGoal:执⾏构建时默认的goal或phase,如jar:jar或者package等
plugins:给出构建过程中所⽤到的插件,常⽤的是maven-compiler-plugin
resources:存放的是项⽬的各种资源,最常见的就是.properties⽂件,⽤来定义⼀些编译时⽤到的变量
properties定义了⼀些常量,避免⼀些重复的东西,⽐如引⼊spring各种依赖包时,可以统⼀配置其version:
<properties>
<spring.version>5.2.4.RELEASE</spring.version>
</properties>maven打包本地jar包
则spring的所有依赖包版本则可以写为:<version>${spring.version}</version>
spring相关依赖包:
Spring Core:Spring的核⼼⼯具包,是其他组件的基本核⼼
Spring Beans:Spring IOC的基础实现,是所有应⽤都要⽤到的,包含访问配置⽂件、创建和管理bean等。
Spring Context:在基础IOC功能上提供扩展服务,此外还提供许多企业级服务的⽀持,有邮件服务、任务调度、JNDI定位,EJB集成、远程访问、缓存以及多种视图层框架的⽀持。
Spring JDBC:对JDBC 数据访问进⾏封装
Spring JMS:Java消息服务
Spring test:对JUNIT等测试框架的简单封装
Spring tx:为JDBC、Hibernate、JDO、JPA等提供的⼀致的声明式和编程式事务管理。
Spring web:包含Web应⽤开发时,⽤到Spring框架时所需的核⼼类,包括⾃动载⼊WebApplicationC
ontext特性的类、Struts与JSF集成类、⽂件上传的⽀持类、Filter类和⼤量⼯具辅助类。
Spring webmvc:包含SpringMVC框架相关的所有类。包括框架的servlets,web MVC框架、控制器和视图⽀持。
Spring webmvc portlet:Spring MVC的增强
Spring websocket:提供 Socket通信, web端的推送功能
Spring ibatis:对iBATIS SQL Maps的⽀持
图中可以简单认为将spring分为5个部分:core、aop、data access、web、test,图中每个圆⾓矩形都对应相应jar包,如果在maven中配置,所有这些jar的“groupId”都是“org.springframework”,每个jar有⼀个不同的“artifactId”,官⽅给出总共20个JAR包。
参考:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论