2.2 maven核心概念

1.maven约定的目录结构

【约定】是大家都遵循的一个规则。

每一个maven项目在磁盘中都是一个文件夹(项目-Hello)

Hello/
---/src
------/main #放你主程序java代码和配置文件
----------/java #你的程序包和包中的java文件
----------/resources #你的java程序中要使用的配置文件
------/test #放测试程序代码和文件的(可以没有)
----------/java #测试程序包和包中的java文件
----------/resources #测试java程序中要使用的配置文件
---/pom.xml #maven的核心文件(maven项目必须有)

maven先到pom找要干什么,再到main中找主程序,test中找测试程序【第一次执行先下载插件】

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-parameter-
documenter-2.0.9.pom
https://repo.maven.apache.org :中央仓库的地址

  • maven compile 编译项目文件
    执行【mvn compile】, 结果是在项目的根目录下生成target目录(结果目录),
    maven编译的java程序,最后的class文件都放在target目录中
  • 设置本机存放资源的目录位置(设置本机仓库):
  1. 修改maven的配置文件, maven安装录/conf/settings.xml 先备份 settings.xml
  2. 修改 <localRepository> 指定你的目录(不要使用中文目录)
    D:\work\maven_work\maven_repository

3.仓库

1)仓库是什么: 仓库是存放东西的, 存放maven使用的jar 和 我们项目使用的jar
> maven使用的插件(各种jar)
> 我项目使用的jar(第三方的工具mysql...)
2)仓库的分类
>本地仓库, 就是你的个人计算机上的文件夹,存放各种jar
>远程仓库, 在互联网上的,使用网络才能使用的仓库
①:中央仓库,最权威的, 所有的开发人员都共享使用的一个集中的仓库
https://repo.maven.apache.org :中央仓库的地址
②:中央仓库的镜像:就是中央仓库的备份, 在各大洲,重要的城市都是镜像。
③:私服,在公司内部,在局域网中使用的, 不是对外使用的
3)仓库的使用,maven仓库的使用不需要人为参与。
开发人员需要使用mysql驱动--->maven首先查本地仓库--->私服--->镜像--->中央仓库(maven工具自动帮我们按照该顺序查找对应仓库是否有我们需要的插件或项目使用的jar)

4.pom:项目对象模型,是一个pom.xml文件【maven核心】

把项目看做一个模型
1)坐标:唯一值, 在互联网中唯一标识一个项目的
<groupId>公司域名的倒写</groupId>
<artifactId>自定义项目名称</artifactId>
<version>自定版本号(三位数字)</version>
https://mvnrepository.com/ 搜索使用的中央仓库, 使用groupId 或者
artifactId作为搜索条件
2) packaging: 打包后压缩文件的扩展名,默认是jar ,web应用是war
packaging 可以不写, 默认是jar
3) 依赖
dependencies 和dependency ,相当于是 java代码中import
你的项目中要使用的各种资源说明, 比我的项目要使用mysql驱动
<dependencies>

<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.9</version>
</dependency>
</dependencies>
相当于是Import
4)properties:设置属性
5)build : maven在进行项目的构建时, 配置信息,例如指定编译java代码使用的jdk的版本等

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。