Maven基础
来源:互联网 发布:js设置input获取焦点 编辑:程序博客网 时间:2024/05/23 00:02
maven:服务于基于java平台的项目构建,依赖管理和项目管理信息。maven是跨平台的。
maven对项目目录结构、测试用例方法提供了成熟的规则。约定优于配置。
总结:
1自动构建工具,抽象构建的生命周期。构建方面:清理,编译,测试到生成报告,打包和部署。
2依赖管理,提供中心仓库。引入经纬确定每一个构件artifact。
3良好的测试集成。 maven对于”如果想要在打包前进行测试,如果测试不通过不打包”这种需求很容易做到。
4良好子项目管理。 maven对于项目来说,可以有一个大项目包括N个子项目构成。而不是像eclipse,只可以有一个根项目。
运行maven命令实际是在maven文件夹下的bin文件下的具体执行。它的实际执行也是执行的java。
构建工具:make,不跨平台。ant,相当于java版本的ant。
maven项目的核心是pom文件。定义项目基本信息,项目如何构造,声明依赖。
pom文件中xml头,指定xml文档的版本和编码方式。最重要的是groupid,artifactid,version,这三个元素定义了一个项目的坐标。groupid定义了项目属于哪个组,这个与公司有关,开辟一个myapp项目,那么groupid定位net.wanpro.myapp。artifactid相当于在当前maven项目在组中的唯一id。可能需要为不同的子项目子模块分配artifactid。version版本,SNAPSHOT快照。
pom实现与具体代码相互分离。
pom中的依赖用groupID,artifactid,version来定坐标。scope来确定范围,test表示只对测试有效。即在测试代码中可以用import这个包,出了测试就不可。
单元测试:一个典型的单元测试包括三个部分,准备测试类和数据,执行,检查结果。
执行打包命令的时候,即mvn clean package命令,输出到target目录,先编译再测试。命名方式artifactid-version.jar形式。
如果有需要我们可以把这个jar复制到其他的项目中从而使用它。如果想maven直接引用这个jar,需要安装,执行mvn clean install
install将项目的构建输出文件安装到本地仓库中。
mvn package 只是将你的代码打包到输出目录,一般的是 target下面。
install是把打出的包装载到本地仓库,一般没有设置过是在 用户目录下的 .m2\下面。
只有构件被下载到了本地仓库才能为项目所有。同样也试用于自己写的模块。
mvn clean install命令,构建项目,执行编译测试打包工作,最后将构建安装到本地仓库。该模块就可以供给其他maven项目使用。
世界上任何一个构件都可以使用maven坐标唯一标示,maven坐标元素表示groupID,artifactid,version,packaging,classifier。
groupid定义实际项目。一个实际项目中往往有很多模块。例如SpringFramework这个实际的项目需要使用模块来分割。artifactid,推荐命名办法是使用实际项目名称作为前缀,版本号跟上。packaging打包方式,不确定的时候就是jar。
classifier用来帮组定义构建输出的一些附属附件。不能直接定义附属附件,因为附属附件不是默认生成的而是通过附加的插件生成的(没太懂)
在maven世界中,任何一个依赖,插件或者项目构造的输出都可以成为构件。构件的物理表现形式是文件。maven通过仓库来统一管理。
仓库的布局方式:任何一个构件都有其坐标,通过坐标定义在仓库中的存储路径。groupid/artifactid/version/artifactid-version.packaging
仓库分为两种,本地仓库和远程仓库。远程仓库分中央仓库,私服,其他公共库。
私服是架设在局域网内的仓库服务。私服代理广域网上的远程仓库。当maven需要下载构件的时候,从私服上请求,当私服上不存在这个构件,就从远程库下载。本地也可以上传构件供内部使用。私服的好处:加速构建,节省带宽,提高部署内部构件。
maven的生命周期包括,清理,初始化,编译,测试,打包,集成测试,验证,部署。生命周期抽象了构建的步骤,具体的实现靠的插件。
maven的生命周期和插件机制保证了所有的maven项目有一致的构建标准,又通过默认插件简化和稳定了实际项目的构建。用户可以通过配置插件自定义插件编写插件来自定义构建行为。
三个生命周期:clean,default,site。每个生命周期内有不同的阶段。
软件越来越复杂,设计人员通过各种方式把软件分为模块,得到更加清晰的设计和重用性。maven的聚合特性把项目的各个模块聚合在一起构建。
配置maven
maven:提供版本管理
版本管理:管理软件版本,依赖(包)管理,各种插件(打包,发布)
由于Maven会把所有依赖的包放在本机的一个目录下,所以实际上是脱离Project本身存在的。IntelliJ IDEA引入了一个External Library的概念,所有的Maven依赖性都会放在这里,和项目自带的库区分开。并且Module之间会智能的判断,你不需要Maven Install来进行引用代码的更新。
pom.xml这个文件是我们Maven项目的核心文件,POM(Project Object Model,项目对象模型)定义了项目的基本信息,用于描述项目如何构建,声明项目依赖。
maven的另外的核心是关于生命周期和插件。
生命周期本身是抽象的,本身不做任何事情,具体的事项由插件完成。
maven有三套生命周期。相互独立的生命周期。
分别为clean,default,site。
clean生命周期中用户清理项目,default的目的用于构建项目。site建立项目站点。
每个生命周期中有一些阶段,各个阶段是有前后顺序的。
clean的生命周期pre-clean,clean,post-clean.当执行clean的时候会执行pre.
default的生命周期定义了真正构建时所需要完成的工作。(此部分的意义在于编译测试打包安装等,涉及的东西较为复杂。暂时理解不了)
site建立和发布项目站点。
常用的maven使用命令:
clean install
mvn:run
- Maven 基础
- maven 基础
- Maven基础
- maven 基础
- Maven基础
- maven基础
- Maven 基础
- Maven基础
- maven 基础
- maven基础
- Maven基础
- MAVEN基础
- Maven基础
- Maven基础
- Maven基础
- maven基础
- maven基础
- Maven基础
- java中hashCode() 和 equals()方法的解析
- LruCache源码
- 关于Java的多态
- 为什么深度学习几乎成了计算机视觉研究的标配?
- 那些开源库你是怎么知道的?
- Maven基础
- Cocoapods pod Install报错did not set the base configuration of your project
- centos安装mysql
- 嵌入式Linux编译器gcc
- LaTeX技巧015:设置表格的宽度和高度
- PHP面向对象总结
- 数组指针和指针数组的区别
- 北京有哪些驻京办餐厅的菜比较好吃?
- NOIP提高组2012 国王游戏