maven
2023-10-18 11:04:14 1 举报
AI智能生成
maven
作者其他创作
大纲/内容
01~53
maven作为依赖管理工具
maven作为构建管理工具
为什么学习Maven
使用原材料生产产品的过程
删除上一次构建的结果
清理
编译
运行提前准备好的测试程序
测试
针对刚才测试的结果生成一个全面的信息
报告
jar包
war包
打包
把一个Maven工程经过打包操作生成的 jar 包或 war 包存入Maven 仓库
安装
把一个jar包部署到Nexus 私服服务器上
jar
借助相关Maven 插件(例如cargo),将war包部署到Tomcat 服务器上
通常会借助jenkins
war
部署
包含环节
构建
如果A工程里面用到了B工程的类、接口、配置文件等等这样的资源,那么我们就可以说A依赖B。
依赖
maven的工作机制
什么是maven
maven.apache.org
maven官网地址
Default: ${user.home}/.m2/repository
localRepository
标签
配置本地仓库
<mirror> <id>nexus-aliyun</id> <mirrorOf>central</mirrorOf> <name>Nexus aliyun</name> <url>http://maven.aliyun.com/nexus/content/groups/public</url></mirror>
mirrors
配置阿里云镜像
<profile> <id>jdk1.8</id> <activation> <activeByDefault>true</activeByDefault> <jdk>1.8</jdk> </activation> <properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion> </properties></profile>
profiles
配置 Maven 工程的基础JDK版本
JAVA_HOME
mvn -v
MAVEN_HOME
配置环境变量
maven核心程序解压与配置
根标签,表示对当前工程进行配置、管理
project
Maven 2开始就固定是4.0.0
代表当前pom.xml所采用的标签结构。
modelVersion
公司或组织的id
groupId
是模块,还差一个项目
模块-->
一个项目或者是项目中的一个模块的id
项目包含很多工程
artifactId
版本号
version
gav
取值jar:生成jar包,说明这是一个Java工程。
取值war:生成war包,说明这是一个Web工程。
取值pom:说明这个工程是用来管理其它工程的工程。
packaging
当前工程名字
name
maven的url地址
url
定义属性值
在构建过程中读取源码时使用的字符集
project.build.sourceEncoding
properties
配置具体的依赖信息
通过坐标信息,导入jar包,就配置他的坐标信息即可
配置当前依赖的范围
scope
dependency
dependencies
标签解析
项目对象模型
模型化思想的具体体现
project Object model
DOM
类似
约定大于配置
配置大于编码
maven的核心概念:POM
根据坐标创建 maven工程
在Maven工程中编写代码
运行Maven中和构建操作相关的命令时,必须进入到pom.xml所在的目录。如果没有在pom.xml所在的目录运行Maven的构建命令,那么会看到下面的错误信息:
mvn-v 命令和构建操作无关,只要正确配置了PATH,在任何目录下执行都可以。
要求
mvn clean
mvn compile
mvn test
mvn package
mvn install
执行Maven的构建命令
mvnrepository.com
创建Maven 版的Web工程
5. 让Web工程依验Java工程
对main、test、有用
对 开发过程、部署到服务器 有用
开发过程,能。出来
时间角度
默认值
compile
对test有用
开发过程有用
test
已提供
翻译
部署到服务器,无效
provided
system
子主题
runtime
import
取值
测试依赖范围
a->b->c
可以传递
不可以传递
test/provided
测试依赖的传递性
exclusion
exclusions
测试依赖的排除
只有打包方式为pom的Maven 工程能够管理其他Maven工程。打包方式为pom的Maven工程中不写业务代码,它是专门管理其他Maven工程的工程。
<packaging>pom</packaging>
创建父工程
<modules> <module>icp-jz-rest</module> <module>icp-jz-service</module> <module>icp-jz-service-api</module> </modules>
会在父工程自动生成modules
通过指定父工程的坐标找到父工程
子工程的groupId如果一样,可以省略
version 也是一样,可以省略
<parent> <groupId>com.mklinfo.icp.jz</groupId> <artifactId>infocenterplatform-jz</artifactId> <version>1.0-SNAPSHOT</version> <relativePath>../../pom.xml</relativePath> </parent>
子工程
即使在父工程配置了对依赖的管理,子工程需要使用具体哪一个依赖还是要明确配置。
子工程采纳的就是父工程管理的版本
确实省略了version标签:
A:这里配置了version和父工程管理的版本一致,最终还是采纳这个版本。
B:这里配置了version但是和父工程管理的版本不一致,那么这里子工程配置的版本会覆盖父工程管理的版本并最终采纳。绝大部分情况下子工程还是遵从父工程统一管理的依赖。
没有省略
对于已经在父工程进行了管理的依赖,子工程中引用时可以不写version
创建模块工程
父子工程
父工程管理依赖
父工程修改依赖版本
创建我们自定义的属性标签
标签名:属性名
标签值:属性值
引用方式:${}
配置自定义属性
继承
聚合
mvn 命令行使用
小白
中级
122~173
超级POM
父POM
当前POM
隐含的一层,但是实际上真正生效的一层。
有效POM
POM
help:evaluate
help插件的各个目标
资深
maven
0 条评论
回复 删除
下一页