精通
英语
和
开源
,
擅长
开发
与
培训
,
胸怀四海
第一信赖
锐英源精品原创,禁止全文或局部转载,禁止任何形式的非法使用,侵权必究
我们打开Idea的设置功能,会看到如下界面:
根据界面,就看到了Maven负责编译任务的管理,记住是管理,Maven并不在一线完成编译,编译代码都是语言工具范畴的。
编译任务的管理,就涉及到包导入和依赖解决、包忽略、编译运行、运行测试和打包。这些配置比较复杂,所以出了新兴术语Maven配置、Maven命令和Maven打包。
在所认识的真正只一家就完成IDE的,很少,估计只有微软才有这能力,微软的有自己的编译命令nmake,有VS项目和解决方案管理,比较人性化,但是有时候还是会出现问题,比如编译MFC时,MFC库没有安装,就编译不了,我就遇到了这问题。安装VS不知道什么时候安装的,比较急,VS2019也比较大,但编译MFC就没过。
VS都这么麻烦,更不用说其它开源IDE或者基于开源搞的IDE了,所以Maven配置、Maven命令和Maven打包在处理大项目大批量文件时,会有莫名其妙的不少问题,大家要留心。
但Maven已经很成熟了,可以说是学习之后用着方便就离不开了,之后创建的都是基于maven的Java项目,毕竟maven的jar包管理实在是太方便了。我们只需要导入jar包的坐标就行了,不需要每次给我们的项目中导入一大堆的jar包,Jar包管理可以说是maven带给我们开发者最直观的优点。
但是maven的功能远不止此,我们知道,我们的项目从书写完成到运行,期间还经历了编译、测试、运行、打包、安装、部署等着一系列过程。而因为我们平时开发一般都是借助于集成开发环境,因此这些过程都是IDEA直接帮我们完成的,因此maven的这些功能对于我们来说并没有那么直观。
Maven能将项目的这些构建过程进行了标准化,每个阶段都使用一个命令完成,但有些命令也是好几个命令的集合,比如clean命令能够删除编译文件、compile用来编译文件、test能够编译文件加测试文件、package则执行编译测试并打包,下面这张图可以很形象的标识各个命令之间的关系
maven能够完成项目从开发到部署的一些列过程,maven同时还能够控制jar包的依赖范围,我们通过给坐标添加<scope>标签来给jar包设置依赖范围
该标签可以选择的所有类型如下所示
通过不同的值我们能够设置jar包的依赖范围,使我们的jar包只在特定的环境中有效。就比如测试jar包Junit,我们只是在测试环境中才会用到,因此我们就可以给它添加<scope>test</scope>标签
这里推出锐英源的Maven配置汇总,会有国外内容翻译文章、Maven使用技巧和一定的视频,欢迎同行交流。
锐英源Maven命令研究内容。
锐英源Maven打包研究内容