maven期末考试

Maven是跨平台的项目管理工具。
主要服务于Java平台的项目构建,依赖管理和项目信息管理。
理想的项目构建:高度自动化,跨平台,可重用的组件,标准化的。

优点如下:
  • 简化了项目依赖管理:
  • 易于上手
    便于与持续集成工具(jenkins)整合
  • 便于项目升级,无论是项目本身升级还是项目使用的依赖升级。
  • 有助于多模块项目的开发,一个模块开发好后,发布到仓库,依赖该模块时可以直接从仓库更新,而不用自己去编译。
  • maven有很多插件,便于功能扩展,比如生产站点,自动发布版本等

缺点如下:

  • maven是一个庞大的构建系统,学习难度大
  • maven采用约定优于配置的策略(convention over configuration),虽然上手容易,但是一旦出了问题,难于调试。
  • 当依赖很多时,m2eclipse 老是搞得Eclipse很卡。
  • 中国的网络环境差,很多repository无法访问,比如google code, jboss 仓库无法访问等。
Maven安装目录分析:
  • bin:含有mvn的运行脚本
  • boot:含有类加载框架
  • conf:含有setting.xml配置文件
  • lib:maven运行时需要的Java类库。
  • License.txt Notice.txt,Readme.txt :针对maven版本,第三方软件进行简要介绍

Maven 约定:

src/main/java –
src/main/resources
src/test/java

maven坐标:

  • groupId:定义当前的Maven项目的隶属项目
  • artifactId:定义实际项目中的一个模块
  • version:定义当前的版本
  • packaging:定义该项目的打包方式

网页要打成war包

依赖的范围:
  1. compile:默认依赖范围,对编译,测试,运行的classPath都有效—。log4j
  2. test:测试依赖范围,只对测试依赖范围classpath有效。—junit
  3. provide:已提供依赖范围。对编译,测试的classpath都有效,但是对运行的无效。—servlet-api
  4. runtime:运行时提供。—JDBC Driver Implementation

仓库的分类:

  • 本地仓库:本地的一个文件夹,用来存放所有的jar包,由自己维护,默认在~/.m2/repository,每个用户只有一个本地仓库。
  • 远程仓库

中央仓库 :maven默认的中央仓库,由maven团队维护。
私服 :一种特殊的远程仓库,它是架设在局域网内部的仓库,一般是公司使用,由公司维护。
镜像:用来替代中央仓库的,速度比中央仓库快。

Maven的三大生命周期:

  • clean:进行项目构建时进行的清理工作。

  • default:构建的核心部分,编译,测试,打包,部署等。

  • site:生成项目报告,站点,发布站点。

    清理–》编译–》测试–》报告–》打包–》部署
    生命周期之间是相互独立的

指令:

  • mvn compile:编译项目的源代码
  • mvn test:使用适合的框架进行测试
  • mvn package:打包成可发布的格式。
  • mvn install:将包安装至本地仓库,以让其他项目依赖。
  • mvn deploy:把包部署到远程仓库。

Maven的核心仅仅是定义了抽象的生命周期,具体的任务都是由插件完成的

每个插件都能完成多个功能,每个功能就是一个插件目标。
Maven的生命周期与目标相互绑定。

依赖的传递性:

  • 路径最近者优先
  • 路径相同,第一声明者优先。

继承

既然有重复的代码,而且是共性的,所以是可以把共性的代码抽象出一个·类,作为父类

聚合

如果想一次性构建多个模块,那么我们就需要对多个模块进行聚合。

Maven私服

什么是私服,为什么要使用私服:

私服是仓库的一种。有些公司不给内部人员上外网,那么就无法访问外网的远程maven仓库,那么就需要在局域网中找一台可以访问外网的机器,通过搭建私服,大家可以通过私服来连接到外部的中央仓库。

Nexus内置仓库说明:
  1. Maven Central:该仓库代理Maven中央仓库,其策略是Release。因此只会下载和缓存中央仓库发布的构件。
  2. Releases:这是一种策略为Release的宿主类型仓库,用来部署组织内部的发布版本构件
  3. snapshots:策略为SnapShot的宿主类型仓库,用来部署组织内部的快照版本构件。
  4. 3rd party:策略为release的宿主类型仓库,用来部署无法从公共仓库获得的第三方发布的版本构建。
  5. Public Repositories:该仓库将所有策略为Release的仓库聚合并通过一致的地址提供服务。

创建宿主目录和代理仓库

  • Hosted:本地仓库,通常我们会部署自己的构件到这一类型的仓库。包括:3rd仓库,Release 仓库,SnapShots仓库。
  • Proxy:代理仓库,它们被用来代理远程的公共仓库。如maven中央仓库。
  • Group:仓库组,用来合并多个hosted/proxy仓库,通常我们配置maven依赖仓库组。
  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值