这篇文章将Maven其他内容做一个介绍。
一、名词
①:localRepository 本地仓库路径,位于maven/conf/settings.xml中。
②:project 项目。
③:pom pom.xml是maven的核心文件。在项目的根目录下,它是指示maven是如何工作的元数据文件。
④:groupId 是项目组织唯一的标识符,实际对应JAVA的包的结构,是main目录里java的目录结构。
⑤:arctifactId 是项目的唯一标识符,实际对应项目的名称,就是项目根目录的名称。
⑥:dependency 依赖,引用。
⑦:plug-in 插件,maven是由插件组织的,它的每一个功能都是由插件提供的。插件提供goal(类似与Ant中的target),并根据在pom中找到的元素去完成工作。主要的maven插件是由java写成的,但是它支持用beanshell或Ant脚本写成的插件。
⑧:repository 仓库(一般在pom.xml中用于构建私服,镜像)。
二、命令
① :mvn compile 编译
cmd进入pom.xml文件目录再输入 mvn compile 对项目进行编译
②:mvn package 打包
cmd进入项目目录,输入mvn package 对项目进行打包
③:mvn clean package 清除前面的打包文件再重新打包
cmd进入项目目录,输入mavn clean package对项目打包文件进行清理并重新打包
④:mvn test 测试
cmd进入项目目录,输入 mvn test 测试,实际执行流程是先编译再运行
⑤:mvn clean 清理
清理原来的编译结果
⑥:mvn clean package -Dmaven.test.skip=true
清理并打包,跳过测试环节,因为实际开发中测试会有错误,因而打包失败
⑦:mvn insstall
发布该项目到本地仓库,在其他项目中pom.xml中引用即可
⑧:mvn deploy
发布项目到服务器
⑨:mvn eclipse:eclipse 项目转换成Eclipse格式
mvn eclipse:clean 清除eclipse格式
⑩:mvn idea:idea 项目转换成IDEA格式
mvn idea:clean 清除idea格式
三、仓库
maven仓库分为 :本地仓库、远程仓库(私服)、*仓库
maven内置了一个公共远程仓库:http://repo1.maven.org/maven2/
用户编写的pom.xml继承了一个超级的pom.xml,有效的pom=超级的pom+自己的pom
四、依赖
传递性依赖:在导入项目A,如果项目A依赖与B项目,则B项目自动导入
当存在多层依赖关系时,遵循以下原则:
①:路径近者优先原则
A——B——C
A——D——B——C
②:第一声明优先原则
A——B1.0
A——B1.1
在实际场景中,会存在jar包版本冲突的问题
解决方案:
①:统一版本号
②:把冲突的版本jar包提取出来单独引用
③:dependency中的exclusion排除某个jar包,一般在开发工具中选择
如果不是传递性依赖,后引入的jar包会覆盖前面引入的jar包
五、私服