Maven基础【一】

百度百科?

Maven项目对象模型:可以通过一段描述信息来管理《项目的构建,报告和文档软件》的软件项目管理工具,来自于Apache组织的一个开源项目,他可以从中央信息管理项目的构建报告文档


同类技术有哪些?

Maven不是java领域唯一的构建管理的解决方案,还有一些其他的Make Ant Gradle
Maven基础【一】_第1张图片


#相比同类优缺点
Maven基础【一】_第2张图片


#Why用maven
1maven解决了jar包包里问题
2maven自动从仓库中下载相应jar包导入项目,而且自动传递依赖
3升级版本框架方便
4自动部署
5热部署,热编辑:web服务允许的时候修改代码可以直接被web服务器接受,不需要重新启动服务器


#不用maven会有什么

1jar包混乱,工程中存在jar包重复版本不一致情况
2添加jar包随意,没有记录
3重复构建
4不同环境构建差异,开发环境与测试环境总是不一样


#怎么使用Maven
##Setting 文件的配置

1 proxy表示Maven的代理

  - 为什么需要代理?

基于安全的考虑,要求通过安全认真的代理访问因特网,所以这个时候需要配置Http代理,才可以访问
外部仓库

2 Repository

  1. 表示maven中央仓库

3 release表示发布版本 snapshots表示快照版本
4修改本地仓库地址
5添加私服仓库镜像

如果A仓库可以提供给B仓库所有内容,那么就认为A仓库是仓库B的一个镜像

   maven
     
   
   *


6添加用户名密码


    maven
    ligang
    



##POM
Project Object Model 项目对象模型定义了项目的基本信息,用于描述项目是如何构建的,
格式
1.第一行是xml指定了xml文档的版本和编码方式
2.project是所有pom.xml的根元素
3.modelVersion指定了当前pom模型的版本,对于maven2和maven3来说只能是4.0.0
这三个表示项目的基本坐标,jar pom war都是基于这些区分的
4.groupId:定义域了项目属于哪个组,这个组合和项目和公司有关系,如果项目名称叫做judy,com.ggoo.judy
5.artifactId:当前maven在项目中唯一id,
6.version : 当前项目 版本
7.classifier:该元素用来帮助定义构建输出的一些附属构建
8.properties:如果是project.build.sourceEncoding项目构建源码编码方式
groupId artifactId version是必须定义的,packaging 是可选择的,默认是jar ,而classifier是不能直接定义的


#maven命令
1 mvn clean 清空输出目录
2 mvn compile 编辑源代码
3mvn package 生成构建包
4 mvn install 将构建包安装到本地仓库
5mvn deplaoy 将构建包部署到远程仓库


#是否有必要使用maven

如果我们有10个项目那么意味着我们必须引入10分模块,如果我们有私有仓库会怎么样?
Maven基础【一】_第3张图片


#Maven最常见的问题和缺陷
全英
https://maven.apache.org/general.html
http://www.radcortez.com/maven-common-problems-and-pitfalls/

该jar不包含在发行版中!
mvn dependency:analyze:这个命令会包塑你项目实际使用那些依赖
mvn dependency:tree:它会输出一个树会为项目的所有依赖和版本。这对调试这些问题非常有帮助。


#Why有的人不喜欢maven
https://news.ycombinator.com/item?id=5105164

这是关于依赖性解析机制的问题。有些东西坏了,但我还没有能够指出它

你可能感兴趣的:(Maven基础【一】)