JavaWeb学习--Maven(下)

        Maven 仓库是用来统一存储所有 Maven 共享构建的位置就是仓库

        Maven 仓库根据 Maven 坐标定义每个构建在仓库中唯一存储路径 groupId/artifactId/version/artifactId-version.packaging

        仓库的分类分为2种:

        本地仓库 : ~/.m2/repository/ 可修改 ,每个用户只有一个本地仓库,Maven的本地仓库,在安装Maven后并不会创建,它是在第一次执行maven命令的时候才被创建。运行Maven的时候,Maven所需要的任何构件都是直接从本地仓库获取的。如果本地仓库没有,它会首先尝试从远程仓库下载构件至本地仓库,然后再使用本地仓库的构件。通常情况下,不管Linux还是Windows,每个用户在自己的用户目录下都有一个路径名为.m2/respository/的仓库目录

        远程仓库 :中央仓库:Maven 默认的远程仓库http://repo1.maven.org/maven2 。Maven中央仓库是由Maven社区提供的仓库,其中包含了大量常用的库。 中央仓库包含了绝大多数流行的开源Java构件,以及源码、作者信息、SCM、信息、许可证信息等。一般来说,简单的Java项目依赖的构件都可以在这里下载到。;私服:是一种特殊的远程仓库,它是架设在局域网内的仓库。通常情况下,大部分私服公司在自己的局域网内搭建自己的远程仓库服务器,私服服务器即是公司内部的maven远程仓库,每个员工的电脑上安装maven软件并且连接私服服务器,员工将自己开发的项目打成jar并发布到私服服务器,其它项目组从私服服务器下载所依赖的构件(jar)。

        就像Make的MakeFileAntbuild.xml一样,Maven项目的核心是pom.xml。POM(ProjectObjectModel,项目对象模型)定义了项目的基本信息,用于描述项目如何构建,声明项目依赖,等等。

        在Maven中坐标是构件的唯一标识,Maven坐标的元素包括groupId、artifactId、version、packaging、classifier。上述5个元素中,groupId、artifactId、version是必须定义的,packaging是可选的(默认为jar)。  由于Maven世界拥有大量构建,我们需要找一个用来唯一标识一个构建的统一规范,拥有了统一规范,就可以把查找工作交给机器。在坐标中:groupId为组织标识,一般为:公司网址的反写+项目名;artifactId为项目名称,一般为:项目名-模块名;version为版本号,形式为0.0.1-SNAPSHOT:packaging是打包的方式,如:pom,jar,maven-plugin,ejb等;clissifier是用来帮助定义构件输出的一些附属构件。

        当我们编写Java代码时,总是需要一些库来对代码进行支持,例如,做单元测试我们需要JUnit库。而对于更大的项目,我们可能需要创建自己的库并在不同的部分使用它的项目。不同的项目需要不同版本的库。保持项目库JAR文件的正确版本不是一个容易的任务。每个外部JAR可能还依赖于其他外部JAR文件等。以递归方式下载所有这些外部依赖JAR文件并确保下载正确的版本是一项巨大的任务。而当项目越来越大,我们将需要越来越多的外部依赖。但是Maven可以将下载它们并将它们放在本地Maven存储库中。 我们可以在POM文件中的dependencies元素内指定依赖关系,找到我们所需的正确版本的库。

        Maven的生命周期是对所有的构建过程进行抽象和统一。Maven的生命周期是抽象的,这意味着生命周期本身不做任何实际的工作,生命周期只是定义了一系列的阶段,并确定这些阶段的执行顺序。而在执行这些阶段时,实际的工作还是由插件来完成的。这种思想与设计模式中的模板方法非常相似。其有三套相互独立的生命周期:Clean(清理项目),Default(构建项目),site(建立项目站点)。
        Maven具有继承功能,即避免重复,让项目更加安全。比如我们在项目开发的过程中,可能多个模块独立开发,但是多个模块可能依赖相同的公共模块,比如说每个模块都需要javaseo-utils,在编译的时候,maven-compiler-plugin插件也要被引入,maven仓库地址以及发布目录都是相同的配置。我们可以使用Maven的继承功能,把公共的配置信息写到父模块中,子模块只要继
承了该父模块,也会继承父模块的配置信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值