java是软件发展的产物,其粒度远远超过了汇编、c等,从面向过程到面向对象,粒度增大,软件进入了构建了层次,当然仍然可以使用面向过程的语言那样抽象出编程模型即输入、处理、输出,概念上下文等,了解它的本质很重要。当我们有现成的算法甚至构件工具可以复用的时候,当前的核心关注点更应该是软件体系结构、组件等这些大粒度的目标。不在赘言,旨在说明一点构建活动在当下的编程活动中凸显的很重要,与其说是写代码倒不如说是“安装代码”,这样的隐喻很适合现在的背景,因为当我们引用jar包的时候,抽象层次更是超越了组件、体系结构。
因此着重学习maven的依赖概念,在展开之前,先认识jar、war包。
典型的jar包内部结构如下:
tools.jar
| resource.xml // 资源配置文件
| other.xml
|
|— META-INF
| MANIFEST.MF // jar包的描述文件
|— com // 类的包目录
|—test
util.class // java类文件
典型的war包的内部结构如下:
webapp.war
| index.jsp
|
|— images
|— META-INF
|— WEB-INF
| web.xml // WAR包的描述文件
|
|— classes
| action.class // java类文件
|
|— lib
other.jar // 依赖的jar包
share.jar
因为依赖概念的主体对象是jar包,在学习maven的依赖管理之前,先看一下所依赖的jar是什么样子,然后思考几个问题,带着问题去理解概念。
1.jar包中代码应该也会依赖其他jar包吧,那么被依赖的jar包是否在要依赖的jar包中引入了呢? 看上面的结构,应该是没有吧?
2.如果jar包中有依赖是否只是在其内部的某些class文件中有说明?
3.使用maven打成的jar包,是在jar包内包含的pom文件中说明了依赖?
4.有pom的jar包,通过maven依赖引入时,是通过maven的管理引入其他简介被使用到的jar包吧?
网上查阅了半天没有结果,只能带着猜测和疑问自己在后续的学习中摸索。算是一个预热吧!
原文地址:https://www.cnblogs.com/10000miles/p/9203879.html