2.1依赖概念之前的预备--war、jar包内部结构

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

时间: 2024-10-17 13:17:47

2.1依赖概念之前的预备--war、jar包内部结构的相关文章

maven依赖本地非repository中的jar包-依赖jar包放在WEB-INF/lib等目录下的情况客户端编译出错的处理

maven依赖本地非repository中的jar包 http://www.cnblogs.com/piaolingxue/archive/2011/10/12/2208871.html 博客分类: MAVEN 今天在使用maven编译打包一个web应用的时候,碰到一个问题: 项目在开发是引入了依赖jar包,放在了WEB-INF/lib目录下,并通过buildpath中将web libariary导入. 在eclipse中开发没有问题,但是使用maven编译插件开始便宜总是报找不到WEB-INF

maven依赖本地非repository中的jar包

http://www.cnblogs.com/piaolingxue/archive/2011/10/12/2208871.html 博客分类: MAVEN 今天在使用maven编译打包一个web应用的时候,碰到一个问题: 项目在开发是引入了依赖jar包,放在了WEB-INF/lib目录下,并通过buildpath中将web libariary导入. 在eclipse中开发没有问题,但是使用maven编译插件开始便宜总是报找不到WEB-INF/lib这个jar包中的类. 显然实在编译的时候WEB

maven依赖本地非repository中的jar包【转】

今天在使用maven编译打包一个web应用的时候,碰到一个问题: 项目在开发是引入了依赖jar包,放在了WEB-INF/lib目录下,并通过buildpath中将web libariary导入. 在eclipse中开发没有问题,但是使用maven编译插件开始便宜总是报找不到WEB-INF/lib这个jar包中的类. 显然实在编译的时候WEB-INF/lib并没有配置到maven-complier-plugin插件src目录中去, 于是将这个目录添加进去,还是不好使.无赖,先把这个jar包安装到本

Maven项目打Jar包,如何添加依赖

之前介绍了使用spring-boot-maven-plugin插件打jar包,会把所有的依赖文件都导入,然后变成了一个可执行的jar包.这样的不好的地方就是,我实际上并不需要把依赖的jar包也打入到生成的jar包里面去,仅仅需要把当前项目的代码打包.生成的jar包只要能引用到它所依赖的jar包,并且可以执行就好了. 那么一般情况下,打包时如何添加依赖呢? 使用maven-dependency-plugin插件 子项目中的pom.xml文件中,添加以下maven-dependency-plugin

03_dbcp数据源依赖jar包,DBCP中API介绍,不同过dbcp方式使用dbcp数据库连接池,通过配置文件使用dbcp数据库连接池

 DBCP数据源 使用DBCP数据源,需要导入两个jar包 Commons-dbcp.jar:连接池的实现 Common-pool.jar:连接池实现的依赖库. 导入mysql的jar包. DBCP核心API BasciDataSource   它可以通过实例化对象的方式获得一个对象. 它里面有如下方法: setDriverClassName(String driverClassName) 设置驱动类的名称. setInitialSize(int initialSize) 设置初始化时的链接

[Maven]Maven构建可执行的jar包(包含依赖jar包)

----------------------------------------------------------------- 转载请注明出处! 博主:疲惫的豆豆 链接:http://www.cnblogs.com/dzblog/p/6913809.html ----------------------------------------------------------------- 目标: 将依赖的第三方jar包打进去 方法: maven-assembly-plugin 环境: IDE

Spring Boot 打war包部署,打jar包

官方文档:http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#howto-create-a-deployable-war-file 一:更改程序入口类 Application.java 使其继承SpringBootServletInitializer,并重写configure方法 @SpringBootApplication public class Application extends SpringBoot

jar包和war包的区别(转)

jar包和war包的区别:war是一个web模块,其中需要包括WEB-INF,是可以直接运行的WEB模块.而jar一般只是包括一些class文件,在声明了Main_class之后是可以用java命令运行的.它们都是压缩的包,拿Tomcat来说,将war文件包放置它的\webapps\目录下,启动Tomcat,这个包可以自动进行解压,也就是你的web目录,相当于发布了. war包:是做好一个web应用后,通常是网站,打成包部署到容器中.jar包:通常是开发时要引用通用类,打成包便于存放管理.ear

Eclipse下maven项目自动打war包丢失jar包问题解决方法

以前用Eclipse测试maven 的web工程,在eclipse内部tomcat右键上点一下"clean"就可以把工作空间的web项目代码自动发布到"F:\IWorkspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp2\wtpwebapps"这个路径,十分的方便.如果tomcat里部署的war包选择的是"Add External Web Module"的话,那测试的话,就要哭了.每次