maven学习

  • maven是java平台的自动化构建工具
    叫美文或是麦文,
  • maven可以做什么
    1 工程的创建,构建,和测试
    2 依赖的统一管理,自动解决重复和冲突问题,
    2 项目的管理 可以实现不同的项目兼容管理
    项目对象模型的标准来处理项目

-maven目录
1 java目录存放java文件
2 resources 存放配置文件
3 test 测试文件
4 target 项目输出文件
5 pom.xml 对象模型配置文件

  • maven中的仓库
    1 本地仓库: 本地项目依赖的jar包会存放到本地仓库中,就在用户目录下.m2\repository
    2 中央仓库:maven社区提供的,所有的依赖都是从中央仓库中去找
    3 远程仓库: 是公司搭建的存放在web服务器上的一个仓库,
    在pom.xml配置文件中配置
  <repositories>
2   <repository>
3     <id>jenkov.code</id>
4     <url>http://maven.jenkov.com/maven2/lib</url>
5   </repository>
6 </repositories>
  • maven的目录和配置文集
- 配置文件 在conf/settings.xml 
1设置本地仓库的位置 localRepository 标签  <localRepository>E:\maven3.6.3\repository</localRepository>
2 设置镜像 mirror 标签 
	<mirror>
		<!--指定镜像id-->
     	<id>nexus-aliyun</id>
		<!--匹配中央仓库-->
     	<mirrorOf>central</mirrorOf>
		<!--指定镜像的名称-->
		<name>Nexus aliyun</name>
		<!--指定镜像的url-->
     	<url>http://maven.aliyun.com/nexus/content/groups/public</url>
     </mirror>
3 配置全局jdk版本
	<profile>
			<id>jdk-1.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>
  • 命令
    1 clean 清除上一次构建生成的所有文件,
    2 package 编译好代码,生成打包的格式,
    3 install 将包安装到本地仓库中,可以让其他项目依赖
  • pom.xml中的标签
1 <modelVersion>正在使用的pom模板版本
2 <groupId> 公司域名反写
3 <artifactId>项目名字
4 <project.build.sourceEncoding>默认字符集
5 <dependencies>依赖管理
6 <dependency> 具体依赖
7 <parent>继承父项目的pom
8 <dependencyManagement>声明依赖,不导入
9 <plugins> 引入插件
10 <pluginManagement>声明插件不加载
11 <properties>声明定义一个属性,需要时可以使用${name}来获取

  • maven工程
    manven是将项目做成了工程,类型有三种
    1 war
    2 jar
    3 pom
    项目与项目之间的关系:
    1 继承 父工程是一个pom工程,可以不需要有源码和资源文件 ,通过parent标签来定位
    2 聚合 一个父项目可以有多个子项目,使用modules标签
    3 依赖 可以通过dependencies元素标签来定义子项目dependency

  • 常用的插件

1 编译插件 
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</build>
2 资源拷贝插件
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.xml</include>
<include>**/*.properties</include>
</includes>
</resource>
</resources>
3 扩展插件
<!-- 配置 Tomcat 插件 -->
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<!-- 配置 Tomcat 监听端口 -->
<port>8080</port>
<!-- 配置项目的访问路径(Application Context) -->
<path>/</path>
</configuration>
</plugin>

  • 为什么需要maven构建工具
1项目很大的时候已经不能用包来划分模块,而是使用一个模块对应一个工程,工程之间的关系可以通过maven来管理,maven是使用pom模型来管理模块之间的关系
项目之间的关系有,依赖继承和聚合。
2对项目中所依赖的jar包可以集中管理到本地仓库中,版本一致性和冲突都可以避免。

  • maven学习
- maven来对项目进行管理 
-maven对jar依做了集中版本控制 
- maven对项目的生命周期做了管理
1 mvn clear 清除编译好的代码
2 mvc compile 编译项目
3 mvn test 运行测试案例
4 mvc package 对项目进行打包处理 包含了编译 测试 打包
- maven运行和安装
maven是java语言编写的,想要运行maven就要先安装jdk
-解压jdk压缩包
tar -zvxf jdk-8
- 配置jdk环境变量
在etc/profile文件中追加几行
JAVA_HOME=/opt/jdk.1.8
PATH=$JAVA_HOME/bin:$path
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
- 知识点
系统在运行java或是其他命令时,系统是如何找到这些命令的呢?
liunx中会去path中找到对应的所在目录下找到命令后运行,如果没有配置这些命令则会需要完成命令路径
- 让环境变量生效
source /etc/profile
-验证jdk版本是否正常
1 查看版本 java -version 
2 编写一个java文件来进行运行 javac/java HelloWord.java 
- 下载maven 
1 创建目录 mkdir /opt/maven
2 下载 wget 官网地址 
[root@ady01 maven]# wget http://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.2/binaries/apache-maven-3.6.2-bin.tar.gz
解压 tar -zvxf apche-maven.tar.gz
- ln -s 源文件 目标文件    ln -s apache-maven-3.6.2 maven 
- 配置maven环境变量
cd /etc/profile/
export M2_HOME=/opt/maven/maven
export PATH=$M2_HOME/bin:$PATH
- 让环境生效 source /etc/profile
- 验证maven是否正常 mvn -v
- 运行maven命令的过程
1 运行mvn命令首先会在系统变量中path对应的目录中寻找bin目录下找 
2 启动软件之后也会加载配置文件 在用户目录下.m2 寻找配置文件 settings.xml 
- maven中settings.xml中的配置 
- 注意一点 settings.xml是maven全局配置文件 pom.xml 是本地项目配置文件
- 全局配置/conf/settings.xml 用户配置 /.m2/settings.xml  用户配置大于全局配置
- 
1 localRepository标签 设置本地仓库 作用就是从远程仓库中下载来的插件和下载下来的jar都会放到这个目录下 
2 mirrors 镜像仓库位置
3 可以配置jdk
- pom.xml详解
pom 就是项目对象模型 pom.xml是maven项目的配置 描述项目的各种信息 
-标签详解 
基本配置 project根标签 modelVersion 设置maven的版本号 
maven坐标 groupId 组织域名逆写 artifactld 项目名字 version 版本
maven版本特殊字符串 1 snapshot 不稳定 2 release 项目最后一个版本 稳定 
packaging 设置项目类型 描述项目打包后的输出类型 默认是jar  还有pom  war 
type标签是描述依赖的类型 默认是jar 
exclusions  排除依赖关系
- 继承
parent 项目继承关系 
-dependencyManagement 依赖声明管理 不会加载依赖主要是做版本控制和被子项目继承
- modules 子项目模块
- properties 定义属性
- resources 配置文件不需要编译 
- plugins 插件  pluginManagement 只做声明 
- idea配置maven需要配置 
1 maven安装目录 
2 settings.xml配置文件
3 本地仓库 repository 
-maven来管理项目 maven会读取到pom配置文件中的配置信息来加载需要依赖的jar包 
maven不仅可以对依赖进行管理还可以对项目和整个生命周期进行管理 
-maven目录结构
1 java 源文件
2 resources 资源 
3 webapps web应用文件目录 
4 target 打包输出目录 
5 target/classes 编译输出目录 
- maven坐标
1 groupid 项目组 就是域名
2 artifactId 项目名字
3 version 版本号
4 packaging 打包类型 默认是jar
- maven导入依赖架构 
dependencies 依赖构件
dependency依赖 groupId artifactId version 定位一个构件的基本信息
type 设置依赖的类型 默认为jar 
scope 依赖范围
option 标记是否可选
exclusions 排除依赖 
- maven依赖范围
根据环境不同依赖也会出现可有可无
scope 的选项有 1 compile 默认选择 测试 编译 运行 都有效 
2 test 只要测试有效 3 runtime 运行时有效 编译时无效 
- maven仓库
1 本地仓库 2 远程仓库
远程仓库分为是中央仓库和私服 
本地仓库位置可以在配置文件中设置 但是默认是c/.m2/respository目录下
外网中央 内网私服
- 依赖版本 
1 snapshot 不稳定
2 release 稳定 







在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值