Maven核心概念
二
1,maven约定的目录结构,约定是大家遵循的一个规则。
每一个maven项目在磁盘中都是一个文件夹(项目-Hello)
Hello/
---/src
-------/main #放主程序java代码和配置文件
----------------/java #放程序包和包中的java文件
----------------/resources #java程序中要使用的配置文件
-------/test #放测试程序代码和文件(不严格要求可以没有)
----------------/java #测试程序包和包中的java文件
----------------/resources #测试java程序中要使用的配置文件
---/pom.xml maven的核心文件(maven项目必须有)
2,疑问:mvn compile 编译src/main目录下的所有java文件
1)为什么要下载
maven工具执行的操作需要很多插件(java类--jar文件)完成的
2)下载什么东西
jar文件--叫做插件--插件完成某些功能
3)下载的东西存放到哪里了
默认仓库(本机仓库):c:\Users\Administrator\.m2\repository
Downloading:https://repo.maven.apache.org/maven2/org/apache/maven/maven-plugin-......
https://repo.maven.apache/org:中央仓库的地址
执行mvn compile,结果是在项目的根目录下生成target目录(结果目录)
maven编译的java程序,最后的class文件都放在target目录中
设置本机存放资源的目录位置(设置本机仓库):
1,修改maven的配置文件,maven安装目录/conf/settings.xml
先备份settings.xml
2,修改<local_repository指定你的目录(不要使用中文目录)
3,仓库
1)仓库是什么:仓库是存放maven使用的jar和我们项目使用的jar
>maven使用的插件(各种jar)
>项目使用的jar(第三方工具)
2)仓库的分类:
>本地仓库,就是你的个人计算机的文件夹,存放各种jar
>远程仓库,在互联网上的,使用网络才能使用的仓库
①:中央仓库:最权威的,所有的开发人员都共享使用的一个集中的仓库。
https://repo.maven.apache.org:中央仓库的地址
②:中央仓库的镜像:就是中央仓库的备份,在各大洲重要的城市都有镜像。
③:私服:在公司内部,在局域网中使用的,不是对外使用的。
3)仓库的使用:maven仓库的使用不需要人为参与。
开发人员需要使用mysql驱动-->maven首先查本地仓库--->私服--->镜像--->中央仓库,没有就向上查找
4,pom:项目对象模型,是一个pom.xml文件
基本信息:
1)modelVersion:Maven模型的版本,对于Maven2和Maven3来说,它只能是4.0.0
2)groupId:组织id,一般是公司域名的倒写。格式可以为:
①域名倒写。如com.baidu
②域名倒写+项目名。如com.baidu.appolo
3)artifactId:项目名称,也是模块名称,对应groupId中项目中的子项目。
4)version:项目的版本号。如果项目还在开发中,是不稳定版本,通常在版本后带-SNAPSHOT
version使用三维数字标识,如1.1.0
5)packaging:项目打包打包后压缩文件的扩展名,默认是jar,web应用是war
packaging可以不写,默认是jar
6)依赖:
dependencies 和dependency
你的项目中需要使用的各种资源说明,如果项目要用mysql驱动
<dependencies>
<!-- 依赖 java代码中 import -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.9</version>
</dependency>
</dependencies>
log4j日志依赖,junit单元测试依赖等
7)properties(配置属性):设置属性
8 )build:maven在进行项目的构建时,配置信息,如指定编译java代码使用的jdk的版本
9)parent:
注:groupId,artifactId,version
坐标(gav):唯一值,在互联网中唯一标识一个项目的
<groupId>公司域名的倒写</groupId>
<artifactId>自定义项目名称</artifactId>
<version>自定版本号</version>
www.mvnrepository.com:搜索使用的中央仓库,使用groupId或者artifactId作为搜索条件
https://mvnrepository.com/