1、Java概览
1.1、Java程序环境配置
按照以下格式在高级系统设置->环境变量->Path->新建,加入以下两条变量(注意jdk的路径)
C:\Program Files\Java\jdk1.8.0_181\bin
C:\Program Files\Java\jdk1.8.0_181\jre\bin
1.2、Java编辑器
idea
1.3、Java编译
1.3.1 、Maven是什么
Maven本质上是一个项目管理工具,是将项目开发和管理过程抽象成一个项目对象模型(POM:project object model),主要解决jar包不统一、jar包不兼容导致的问题和工程升级维护过程操作繁琐。
Maven可以为我们进行项目构建(提供标准化、跨平台的自动化项目构建方式),依赖管理(方便快捷的管理项目的依赖资源jar包,避免资源及版本的冲突),统一开发结构:提供标准统一的项目结构。
1.3.2、Maven的安装
通过https://maven.apache.org/download.cgi下载对应版本即可,无需进行安装,因为Maven是免安装的,可以直接进行运行,配置一些环境变量即可。
maven目录结构及作用
- bin:maven的核心运行文件
- boot:mavem的类加载器
- conf:maven的核心配置
- lib:maven的依赖jar包
Maven仓库分类
- 本地仓库:自己电脑上存储资源的仓库,连接远程仓库获取资源
- 远程仓库:非自己电脑上的仓库,为本地仓库提供资源
-
- 中央仓库:Maven团队维护,存储所有资源的仓库(https://repo1.maven.org/maven2/)
- 私服:部门/公司范围内存储的仓库,从中央仓库获取资源
- 私服的作用:
-
- 保存具有版权的资源,包含自主研发或购买的jar(中央仓库的的jar包都是开源的,不能存储具有版权的资源)
- 一定范围内共享资源,仅对内部开放,不对外共享。
Maven坐标
maven坐标是资源的唯一标识,使用坐标可以定义项目或引入项目中需要的依赖
maven坐标的组成:
- groupId:定义当前Maven项目隶属于组织的名称(通常是域名反写)
- artifactld:定义当前Maven项目的名称(通常是模块名称,例如:CRM,SMS)
- version:定义当前项目的版本号
- packaging:定义当前项目的打包方式 (可选)
maven本地仓库配置
进入Maven的conf文件夹中的setting文件
-
默认的仓库配置
${user.home}/.m2/repository
-
自定义自己的仓库位置
<settings> <localRepository>D:\maven\repository</localRepository> </settings>
-
中央仓库的配置位置
在lib文件中随便找一个jar包用winrar打开,然后返回上一级目录搜索pom*.*,找到pom-4.0.0.xml文件,定位到。将文件拖出后打开即可看到。
maven远程镜像仓库的配置
当需要访问中央仓库的时候,就会去访问镜像仓库。ps:中央仓库在国外,访问速度慢
<!-- 配置具体仓库的下载镜像 -->
<mirror>
<!-- 此镜像的唯一标识符,用来区分不同的mirror元素 -->
<id>ali-maven</id>
<!-- 对哪种仓库进行镜像,简单说就是代替哪个仓库 -->
<mirrorOf>central</mirrorOf>
<!-- 镜像的名称 -->
<name>aliyun maven</name>
<!-- 镜像的URL -->
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
</mirror>
maven项目构建命令
- mvn compile 编译(在src同级目录下生成一个target文件)
- mvn clean 清理(删除target文件)
- mvn test 测试(会在编译同时将test的部分也编译,并执行test内测试方法的内容,在surefile-reports中生成报告内容)
- mvn package 打包(target文件中生成一个jar包)
- mvn install 安装到自己本地仓库
maven生命周期
-
Maven构建项目生命周期描述的是一次构建过程经历了多少个事件
-
Maven对项目构建的生命周期划分为三套
- clean:清理工作 pre-clean-> clean -> post-clean
- default:核心工作。如编译,测试,打包,安装等 compile -> test -> package -> install
- site:产生报告,发布站点等 pre-site -> site -> post-site
同意生命周期内,执行后面的命令,前面的所有命令会自动执行。如:在执行install的时候前面的命令都会执行。
idea项目配置maven
file—>setting—>build,execution—>Build Tools —> Maven—>Maven home path—>选择mavende m目录
idea创建maven项目
- 创建模块->file ->new->module,选择maven,点击next
- 填写模块名称,坐标信息,点击finish,创建完成
- 编写helloWorld,并运行
public class helloWorld {
public static void main(String[] args) {
System.out.println("hello world");
}
}
idea导入maven项目
- 选择右侧maven面板,点击+号
- 选中对应项目的pom.xml文件,双击即可
- 如果没有maven面板,选择view->Appearance->Tool Window Bars
idea配置maven-helper插件
- 选择idea中的file --> Settings
- 选择Plugins
- 搜索Maven,选择第一个Maven Helper,点击Install安装,弹出面板中点击Accept
- 重启idea
maven依赖管理
使用坐标导入jar包
- 在pom.xml中编写标签
- 在标签中,使用引入坐标
- 定义坐标的三个关键字:groupId,artifactId,version
- 点击刷新按钮,使坐标生效
使用坐标导入jar包-自动导入
- 选择idea中的file -> Settings
- 在弹出的面板中找到 build,Execution,Deployment -> Build Tools
- 选择Any changes,点击ok即可生效
快捷导入jar包
- 在pom.xml文件中按alt + insert ,选择Dependency(如果你的pom文件还没有,那么直接选择Dependency Template)
- 在弹出的面板中搜索对应坐标,然后双击选中的对应坐标
- 点击刷新按钮,使坐标生效
maven依赖范围
可以通过设置坐标的依赖范围scope,来指定对应的jar包的作用范围:编译环境、测试环境、运行环境
依赖范围 | 编译classpath | 测试classpath | 运行classpath | 例子 |
---|---|---|---|---|
compile | Y | Y | Y | logback |
test | - | Y | - | junit |
provided | y | Y | - | servlet-api |
runtime | - | Y | Y | jdbc驱动 |
system | Y | Y | - | 存储在本地的jar包 |
import | 引入DependencyManagement |
scope的默认值:compile