maven工程的学习

公司的框架是比较大而老而"安全的",没有使用分布式,就是使用的项目的聚合和继承,搭环境着实让进公司的刚毕业的小老弟头疼难受。

maven学习
1.maven是一款服务于java平台的自动化构建工具
maven->gradle
2.构建
1.概念:生成一个可以运行的项目的过程
编译-部署-搭建

4.安装Maven核心程序
1.检查JAVA_HOME环境变量
5.Maven的核心概念
1.约定的目录结构
2.POM
3.坐标
4.依赖
5.仓库
6.生命周期
7.继承
8.聚合
pom maven核心配置文件

maven命令
注意:执行与构建相关的Maven命令,必须进入pom文件所在的目录
与构建过程相关:编译,测试,打包
常用命令
mvn clean:清理
mvn compile 编译主程序
mvn test-compile:编译测试程序
mvn rest:执行测试
mvn package: 打包
mvn install 命令可以让项目进行仓库
关于联网问题:
Maven的核心程序中仅仅定义了生命周期,但是具体的工作必须由特定的插件来完成,而插件本身并不包含再maven的核心程序中
当我们执行的mavne命令需要用到某些插件时,Maven核心程序会首先到本地仓库中查找
本地仓库的默认位置:【系统中当前用户的家目录】.m2\repository
maven如果找不到,就会去仓库下载

pom :Project Object Model 项目对象模型

pom.xml对于maven工程是核心配置文件,与构建相关的的一切设置都在这个文件中进行配置

坐标
使用下面三个向量在仓库中唯一定位一个maven工程

	groupid:公司或者组织域名倒叙+项目名
	<groupid></groupid>
	artifactid:模块名
	<artifactd>Hello</artifactd>
	version:版本
	<version>1.0.0</version>
<version>1.1.0release/version>
release 分离 正式版已经开发完善

snapshot 快照 不稳定版本

11.仓库
仓库的分类:
1.本地仓库
2.远程仓库:私服:nexus
中央仓库:
镜像仓库:
仓库中保存的内容:Maven工程
1.maven自身所需要的插件
2.第三方框架或工具的jar包
3.我们自己开发的Maven工程

12.依赖
1.Maven解析mavne依赖信息时会到本地仓库中找包

 mvn install   命令可以让项目加载进仓库变成依赖
2.依赖的范围<scope>
	1.compile
		对主程序有效
		对测试程序有效
		参与打包
	2.test
		不参与打包
		对主程序、对测试程序无效
		
	3.provided
		
		仅开发时依赖
		
	4.deploy
	//配置当前工程构建过程中的特殊设置
	<build>
		//
		<plugins>
			<plugin>
				//配置当前系统中容器的位置
				<container>
					
				</container>
			</plugin>
		</plugins>
		
		//配置插件在什么情况下执行
		<executions>
			//生命周期的节点
			<phase></phase>
			<goals>
				<goal></goal>
			</goals>
		</executions>
	</build>

依赖的传递性
好处:可以传递的依赖不必在每个模块中工程中都重复说明
非compile的依赖不能传递
依赖的排除

<exclusion>
		<groupid></groupid>
		<artifactd></artifacted>
	</exclusion>
作用:解决模块间的jar包冲突

情景:验证路径依赖最短优先政策
情景:验证路径相同时先声明者优先	代码从上到下执行!

自定义标签
声明:<property>
	<version>4.0.0</version>
</property>

引用:${version}

继承
统一管理各个模块工程中对junit依赖的版本
将依赖统一提取到“父”工程中,在子工程中声明依赖
操作:
1.创建一个MAVNE工程作为父工程。注意:打包的方式 pom(不是jar或者war)
2.在子工程中声明父工程的依赖

//以当前文件为基准的父工程pom.xml的相对路径
…/parent/pom.xml

	子工程中将依赖版本删除
	
	父工程中 	配置父子中统一依赖
	<dependencyManager>
		<dependencies>
		
		</dependencies>
	</dependencyManager>
	3.将子工程中的坐标中与父工程坐标重复的内容删除
	4.在父工程中统一junit的依赖
	5.在子工程中删除junit的依赖的版本号
	6.配置继承后,需要将父工程先install

聚合
作用:一键安装各个模块工程

	<modules>
			<!--指定子模块-->
			<module></module>
		</modules>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值