Maven一.什么是Maven? Maven是跨平台项目管理工具。依靠管理和项目信息管理,主要服务于基于Java平台的项目建设。二.Maven工程的架构 src main java放置您的源码 resources放置您的配置文件 test java放置您的测试代码 resources放置您的测试配置文件 这个目录中出现了target构建后的一切。 pom.xmlMaven工程核心配置文件3。第一个项目4.以下两个值设置在Eclipse配置Maven环境设置环境中的instalations中,您的maven环境设置Userd 在setting中,设置当地仓库配置文件settingseting.xml,更新5.基于Myeclipse创建新的Maven项目,创建Maven项目,选择quick-start,输入GAV,完成Maven项目的创建。6.依靠Maven项目运行所需的jar包(资源)通过当地仓库获取,当地仓库信息通过中央仓库获取,项目依靠相应的jar包运行。7.依赖范围
Scope对应不同的依赖范围,比如test只能服务于测试阶段,其他阶段无效。8.依靠传输three,依靠twotwo,依靠onethree间接依赖one
九、可选依赖性(修改被依赖方是否向依赖放提供jar包)<optional>true</optional>在一个项目中,可选依赖开关设置多个配置,筛选依赖包10。排除依赖(修改依赖方是否使用依赖放提供jar包)
<exclusions> <exclusion> 所包含坐标1 </exclusion> <exclusion> 所包含坐标2 </exclusion> </exclusions>
消除从依赖包中传递的依赖关系
十一.依赖冲突 不同项目的转移依赖以最接近依赖关系为准 多个依赖版本配置在同一项目中,以最终配置为准。仓库类型 本地仓库 D盘:本地仓库 远程仓库 互联网上 中央仓库: 私服:本地仓库和中央仓库之间存放在局域网中的仓库13。生命周期 三个生命周期,每个生命周期包含几个小的生命周期 clean default site14.使用插件
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-source-plugin</artifactId> <version>2.2.1</version> <executions> <execution> <goals> <goal>jar-no-fork</goal> </goals> <phase>verify</phase> </execution> </executions> </plugin> </plugins></build>
15.为了消除重复,我们提取了许多相同的配置,并将父亲的项目设置为被继承
<packaging>pom</packaging> 继承父工程在子工程中增加 <!-- 描述继承 声明继承的父亲项目的坐标,以及相应的指定位置--> <parent> <groupId>…</groupId> <artifactId>… </artifactId> <version>… </version> <relativePath>../父工程项目名</relativePath> </parent>
父工程统一管理子工程依赖版本
父工程声明依赖于管理版本,子工程只需声明使用的坐标GA,不需要设置版本,父工程提供统一的管理版本
<properties> <junit.version>4.9</junit.version> ……</properties>
引用使用${junit.version}
十六.聚合
<modules> <module>../子项目名称1</module> <module>../子项目名称2</module> <module>../子项目名称3</module></modules>
聚合与继承的关系
聚合主要是为了快速建设项目继承,主要是为了消除重复
//===========================================================
pom.简单的xml模板文件:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="https://www.tulingxueyuan.cn/d/file/p/20230516/czes5edrszs" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <!-- 版本:4.0.0 --> <modelVersion>4.0.0</modelVersion> <!-- 版本:4.0.0 --> <modelVersion>4.0.0</modelVersion> <!-- 组织名称:临时使用 组织名称+项目名称 作为组织名称 --> <!-- 组织名称:实际名称 根据访问路径规范设置,通常以功能为名称:eg: junit spring --> <groupId>cn.itcast.maven</groupId> <!-- 项目名称 --> <artifactId>HelloWorld</artifactId> <!-- 当前项目版本号:多个版本可以在同一项目开发过程中发布,此处标注0.0.1版 --> <!-- 当前项目版本号:每个项目发布后,可以发布多个版本,依赖时可以转移不同的版本,使用不同的版本号 --> <version>0.0.1</version> <!-- 名称:可省略 --> <name>Hello</name> <!-- 依赖关系 --> <dependencies> <!-- 依赖设置 --> <dependency> <!-- 依赖组织名称 --> <groupId>junit</groupId> <!-- 依赖项目名称 --> <artifactId>junit</artifactId> <!-- 依赖版本名称 --> <version>4.9</version> <!-- 依赖范围:test包下的依赖设置 --> <scope>test</scope> </dependency> </dependencies></project>
执行maven命令jar包...
a)打开cmd命令行,进入Hello项目根目录(包括pomm).xml文件目录)b)执行 mvn 实施compile命令后,生成了maven工程编译完成后字节码文件的生成目录targetc)cmd 继续输入mvn 执行完clean命令后,删除d字节码生成目录cmd 中录入 mvn test命令执行后,编译字节码和测试执行过程日志和详细报告e在字节码生成目录中生成)cmd 中录入 mvn clean compile命令组合指令,首先执行clean,然后执行compile,通常在上线前执行,清除试验f)cmd 中录入 mvn clean test命令组合指令,首先执行clean,然后执行test,通常用于测试g)cmd 中录入 mvn clean package命令组合指令,先执行clean,再执行package,包装项目,通常用于发布前的执行过程:清洁-清空环境编译-编译源代码测试-测试源代码包装-编译非测试包装h)cmd 中录入 mvn clean install 查看仓库,当前项目已发布到仓库组合指令,先执行clean,再执行install,将项目打包,它通常用于发布前的执行过程:清洁-清空环境编译-编译源代码测试-测试源代码包装-编译非测试包装部署-将包装发布到资源仓库