什么是maven,maven解决什么问题
程序员文章站
2022-04-15 17:57:14
asdsad...
什么是maven?下面是我认知的理解。
是一个软件(特别是Java软件)项目管理及自动构建工具,由Apache软件基金会所提供。基于项目对象模型(缩写:POM)概念,Maven利用一个*信息片断能管理一个项目的构建、报告和文档等步骤。这是一个比较官方的理解。
当然,我的理解maven是一个依赖管理工具。如果一个项目是maven项目,它会自动去找它到的依赖,并下载到本地,然后自动引用到项目里去,就不用考虑依赖的jar包和版本问题。一个简单的列子:我们现在在使用spring 3.3这个jar包,而这个jar包依赖apache-comons 2.0这个jar包,而apache-comons 2.0依赖javasist 1.5,那么你就不需要自己去找下面这些依赖的jar包,maven会自动去寻找且下载,然后引用到项目。
maven还可以说是一个构建工具,简而言之从源码到成品的整个过程。这个工具可以定制一套标准的格式,这套格式可以拿来构建。构建的简易过程就是从java源码编译为class文件,然后打成jar包。如果是要打成war包,先把java编译成class文件,放置到一个专门放java的目录,根据场景需求,所有的静态资源一般放置某个目录,如果有jsp,先把jsp编译成servlet,然后在编译成class;在挪至某个位置,然后打包成war包。这就是构建的简易过程。这就是maven的构建。
接下来就是构建的生命周期,步骤:验证>初始化>生成源码>处理源码>生成资源>处理资源>编译>处理类>生成测试源码>处理测试源码>生成测试资源>处理测试资源>测试编译>处理测试代码>测试>打包前准备>打包>前集成测试>集成测试>后集成测试>检验>安装>部署。这是构建的完整步骤。简而言之:默认的生命周期:检验>初始化>编译>测试>打包>集成测试>安装>部署。
什么是坐标?在maven中,它可以定位。在一个maven项目中。有一个文件叫pm.xml,而这个文件有这样几个标签,groupId,artifactId,version,这就是坐标。packaging设置打包的类型。name设置项目名。url官方网站。properties项目的属性。在这对项目属性标签中写项目属性,project.build.sourceEncoding设置项目构建时的字符编码集。dependencies依赖。dependency单元测试工具包。
一个maven项目,它的目录结构都有一个约定,每位码农都会遵守这个约定。
└─src 源码
├─main 主要的内容
| | ├─java java源码
| │ └─com
│ │ └─woniuxy
│ │ └─build 包名
│ └─resources 资源: 配置文件
└─test 测试相关
└─java
└─com
└─woniuxy
└─build
pom.xml
这就是一个遵守约定的maven项目的约定。
maven都有一个仓库。本地仓库(local)->私服镜像(aliyun)->*仓库central
下面是maven的安装步骤:
1:下载maven。
2:解压至一个位置。
3:配置maven的环境变量
M2_HOME
bin: %M2_HOME%\bin
4:测试maven是否成功,在cmd中输入命令:mav -v。
5:修改配置:
<localRepository>D:\UserData\repo</localRepository>
<mirrors>...<mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>central</mirrorOf> </mirror></mirrors>
6:简单使用:
mvn archetype:generate -DarchetypeCatalog=internal -DgroupId=com.woniuxy.build -DartifactId=demo,生成一个java se项目
7:在pom.xml的目录下运行项目
mvn clean compile exec:java -Dexec.mainClass="com.woniuxy.build.App"
8:打包
mvn package
当然,这里只是作者小白对maven毛皮的认知。
本文地址:https://blog.csdn.net/xinbimaye/article/details/107883227