Maven常用的构建命令

Maven常用的构建命令

Maven基础知识

Maven常用命令

mvn -v 			查看Maven版本
	compile 	编译
	test 		测试
	package		打包

	clean 		删除target	---->	target存放的是项目 编译的字节码文件和测试报告
	install		安装Jar包到本地仓库中

Maven自动建立目录骨架

archetype插件 ---> 用于创建符合maven规定的目录骨架

创建目录的两种方式:
1.mvn archetype:generate 按照提示进行选择
2.mvn archetype:generate -DgroupId=组织名,公司网址的反写+项目名
						 -DartifactId=项目名-模块名
						 -Dversion=版本号
						 -Dpackage=代码所存在的包名

Maven中的坐标和仓库

坐标		
	构件:构件通过坐标作为其唯一标识
仓库
	本地仓库和远程仓库
镜像仓库
	镜像仓库的位置修改:打开Maven--->conf--->settings.xml
					 找到<mirrors>这个标签
					 具体修改如下:
								<mirror>
									<id>maven.net.cn</id>
									<mirrorOf>central</mirrorOf>
									<name>central mirror in china</name>
									<url>http://maven.net.cn/content/groups/public</url>
								</mirror>
更改仓库位置:
	默认存放在当前用户目录中的--->.m2--->repository
	
	修改默认路径:新建一个仓库文件夹、找到settings ---> 找到<localRepository>
				新增<localRepository>新建文件夹路径</localRepository>--->复制settings到新的文件夹中

在Eclipse中安装Maven插件以及创建Maven项目

复制Maven插件 ---> 放到Eclipse的安装目录dropins中--->重启
Eclipse.ini文件中加入 --->-vm和jDK中的javaw.exe路径

Maven的生命周期和插件

完整的项目构建过程包括:
			清理、编译、测试、打包、集成测试、验证、部署

Maven的生命周期:
				clean	清理项目
					pre-clean 	执行清理前的工作
					clean		清理上一次构建生成的所有文件
					post-clean	执行清理后的文件

				default	构建项目(最核心)
					
				site	生成项目站点
					pro-site 在生成项目站点前要完成的工作
					site 生成项目的站点文档
					post-site 在生成项目站点后要完成的工作
					site-deploy 发布生成的站点到服务器上

Pom.xml解析

    <project xmlns="http://maven.apache.org/POM/4.0.0"
    	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
    	http://maven.apache.org/xsd/maven-4.0.0.xsd">
    
    	<!-- 指定了当前pom的版本 -->
    	<modelVersion>4.0.0</modelVersion>
    		<groupId>反写的公司网址+项目名</groupId>
    		<artifactId>项目名+模块名</artifactId>
    		<!--
    			第一个0表示大版本号
    			第二个0表示分支版本号
    			第三个0表示小版本号
    			0.0.1
    			snapshot 快照
    			alpha 内部测试
    			beta 公测
    			Release 稳定
    			GA 正式发布
    		-->
    		<version></version>
    		<!-- 打包 默认是Jar 还有其它如:war、zip、pom -->
    		<packaging></packaging>
    		<!-- 项目描述名 -->
    		<name></name>
    		<!-- 项目地址 -->
    		<url></url>
    		<!-- 项目描述信息 -->
    		<description></description>
    		<!-- 开发人员信息 -->
    		<developers></developers>
    		<!-- 许可证信息 -->
    		<licenses></licenses>
    		<!-- 组织信息 -->
    		<organization></organization>
    
    		<!-- 依赖列表可以包含多个依赖项 -->
    		<dependenices>
    			<dependency>
    				<groupId></groupId>
    				<artifactId></artifactId>
    				<version></version>
    				<type></type>
    				<scope></scope>    -----> 依赖范围
    				<optional></optional> 	---->设置依赖是否可选
    				<!-- 排除依赖传递列表 -->
    				<exclusions>
    					<exclusion>
    					</exclusion>
    				</exclusions>
    			</dependency>
    		</dependenices>
    
    		<!-- 依赖管理 -->
    		<dependencyManagement>
    			<dependenices>
    				<dependency></dependency> --->一般不会被引用    
    			</dependenices>
    		</dependencyManagement>
    
    		<build>
    			<!-- 插件列表 -->
    			<plugins>
    				<plugin>
    					<groupId></groupId>
    					<artifactId></artifactId>
    					<version></version>
    				</plugin>
    			</plugins>
    		</build>
    		
    		<!-- 通常用于在子模块中对父模块POM的继承 -->
    		<parent></parent>
    		<!-- 用来聚合运行的Maven项 -->
    		<modules>
    			<module></module>
    		</modules>
    	<project>

Maven依赖范围

也就是:<scope></scope>的依赖范围。
依赖范围有6种:
			compile 	--> 默认的范围,编译、测试、运行都有效
			provided	-->	在编译和测试时有效
			runtime		-->	在测试和运行时有效
			test		-->	只在测试时有效
			system		--> 同provided一样,与本机系统关联,可移植性差(不可移植)
			import		-->	只在<dependencyManagement>中有效

Maven依赖传递

假如有Maven项目A,项目B依赖A,项目C依赖B。那么我们可以说 C依赖A。
也就是说,依赖的关系为:C—>B—>A。
那么我们执行项目C时,会自动把B、A都下载导入到C项目的jar包文件夹中。

Maven依赖冲突

依赖原则:
	1.短路优先      --> 优先解析路径短的版本
			如:A->B->C->X(jar)
			   A->D->X(jar)           ---->这个优先依赖
	2.先声明先优先   --> 如果路径长度相同,则谁先声明,先解析谁
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值