项目构建工具 Maven简介与安装配置

音译:专家,内行

介绍:Maven是一个项目构建,依赖管理,项目信息管理的工具。

不涉及编码,改变编码方式,对于瀑布式开发与敏捷开发都有应用

1.项目构建工具介绍

瀑布式开发

需求分析,概要设计,详细设计,编码,测试上线等一步一步开发,只有完成上阶段的事情才能进行下一阶段的开发。

敏捷开发

在一开始分模块组件团队,一些核心部分可以同时进行,或者提前进行,这样能够实现项目快速的开发与上线。

一般项目构建流程:

编译 --> 单元测试 --> 生成项目信息 --> 打包 -->部署

​ 代码库 --> 签出(svn) --> 单元测试 --> 修改(协商) --> 单元测试 --> 新内容

​ --> 开会(业务,培训,上级- 查看) --> 生成项目项目信息 --> 新内容 -->bug(平台:禅道) --> 修改

​ --> 单元测试(自己本地) --> 预上线(cosplay–测试人员) --> 打包部署上线,提交代码库

我们通常每天花大量的时间在项目构建上,而实际的代码的修改或者编写的工作之战很少的部分,为了快速开发,急需项目构建工具帮我简化开发。

构建工具

Ant:apache项目,项目构建工具(主要是做编译),但是不能打包,不能进行依赖管理,信息管理

eclipse:IDE,项目构建,依赖管理,信息管理,但手工操作比较多

maven:apache项目,项目侯建和依赖管理工具,pom(项目对象模型),通过xml的简单配置,实现管理,支持一键式操作(简单命令)

gradle: 类似maven,但是采用groovy语言进行配置,比xml简单

依赖管理:(jar包的管理)

jar复制到项目中(项目库 --> 项目太大)

引用方式

2.maven的简介

在maven中一个比较重要的概念就是仓库,它包括远程仓库本地仓库,而远程仓库则包括企业搭建的私服,实质也是一个远程的数据仓库,和本地仓库一样,只是是放在远程的服务器上。中央仓库一般指的是apache maven官网的仓库。同私服一样,是一个远程的数据仓库,但是里面的资源比较全。但是因为在国外,因为网络的原因,很多企业会使用自己的私服,下载速度有很大提升。

1)不同Jar包在中央仓库中的标识

为了去人不同的项目和版本,maven采用GAV坐标进行唯一标识一个项目资源。即 groupId, artifactIdversion,而且在项目构建时还提供了引用范围,即编译时(compile)或运行时(runtime)或测试时(test)等。

中央仓库坐标:

groupId:组ID标识,一般为域名反写。

artifactId: 项目模块名。

version:指定该项目或者模块的版本

2) maven工作原理

maven是基于xml配置式的,即pom.xml,会配置项目的打包方式,坐标(GAV),依赖的jar包的坐标,编译时插件等,并可以对jar包的提供方式进行配置等。

当应用程序执行编译前会根据pom.xml中配置的jar包的提供方式,实时去本地仓库根据坐标查找对应的jar包依赖,如果找到的话就继续查找下一个,全部查找完毕会开始编译(包括源码和测试代码部分)。本地仓库中没有找到的话会去配置的远程仓库中去寻找坐标。后续操作相同。远程仓库找不到的话会报错。

3.maven下载与安装配置

1)下载网址(windows下载zip包,Linux或者Mac下载tar.gz包)

archive.apache.org/dist

maven.apache.org

2) 安装(需要进行下一步配置)

解压即可:

windows下zip包解压软件解压缩即可

Linux下

tar -zxvf apache-maven-3.6.0.tar.gz

安装目录结构:(以windows下为例)

 d:\soft\maven\apache-maven-3.6.0 的目录

2018/10/24  20:43    <DIR>          .
2018/10/24  20:43    <DIR>          ..
2018/10/24  20:43    <DIR>          bin
2018/10/24  20:43    <DIR>          boot
2018/10/24  20:38    <DIR>          conf
2018/10/24  20:43    <DIR>          lib
2018/10/24  20:43            13,439 LICENSE
2018/10/24  20:43               182 NOTICE
2018/10/24  20:38             2,530 README.txt
               3 个文件         16,151 字节
               6 个目录 15,763,718,144 可用字节

bin目录:包括mvn和mvnDebug命令在windows下的批处理脚本和Linux下的shell脚本,外加一些加载jar包的配置文件。

boot目录:boot目录中只包含上面提到的 plexus-classworlds-2.5.2.jar包,该包是一个类加载器的框架,用来加载maven本身的类。

conf目录:conf目录中包含了一个非常重要的settings.xml配置文件,以后的很多配置都会在该文件中进行配置。该文件可以直接修改,直接修改该文件就是在全局上定制该文件。还有一个在logging目录下的默认的log4j的默认配置文件simplelogger.properties准备针对项目构建时的日志输出配置。默认输出级别:Info

org.slf4j.simpleLogger.defaultLogLevel=info
org.slf4j.simpleLogger.showDateTime=false
org.slf4j.simpleLogger.showThreadName=false
org.slf4j.simpleLogger.showLogName=false
org.slf4j.simpleLogger.logFile=System.out
org.slf4j.simpleLogger.cacheOutputStream=true
org.slf4j.simpleLogger.levelInBrackets=true
org.slf4j.simpleLogger.log.Sisu=info
org.slf4j.simpleLogger.warnLevelString=WARNING

lib目录:目录中包含了maven运行时所需要的类.

LICENSE:apache开源许可认证文件

NOTICE: 版权声明

README.txt: maven简介安装下载使用说明指南。

3)maven的配置(conf/settings/xml)
① maven本地仓库的配置

在根标签settings下面有段注释:

<!-- localRepository
   | The path to the local repository maven will use to store artifacts.
   |
   | Default: ${user.home}/.m2/repository
  <localRepository>/path/to/local/repo</localRepository>
  -->

意思是说在windows下默认的本地仓库的地址在当前用户目录的.m2文件夹下的repository中。

如果系统盘不够的话可配置其他地址:

<localRepository>D:\repo</localRepository>
② 配置阿里云远程仓库
<mirrors>
	<mirror>
		<id>nexus-aliyun</id>
		<mirrorOf>*</mirrorOf>
		<name>Nexus aliyun</name>
		<url>http://maven.aliyun.com/nexus/content/groups/public</url>
	</mirror>
</mirrors>
③ 配置使用编译使用的JDK版本(默认使用JDK1.4太老)

此处采用JDK1.8的配置

<profile>       
	   <id>jdk-1.8</id>       
	   <activation>       
		   <activeByDefault>true</activeByDefault>       
		   <jdk>1.8</jdk>       
	   </activation>       
	   <properties>       
		   <maven.compiler.source>1.8</maven.compiler.source>       
		   <maven.compiler.target>1.8</maven.compiler.target>       
		   <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>       
	   </properties>       
	</profile>   

猜你喜欢

转载自blog.csdn.net/qq_33713328/article/details/88067355