IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> 2022-9-16 第七小组 学习日记 (day71)Maven -> 正文阅读

[Java知识库]2022-9-16 第七小组 学习日记 (day71)Maven

目录

(上午)

什么是Maven:

Maven的优缺点:

优点:

缺点:

Maven生命周期:

1.clean周期:

2.默认周期:

3.site周期:(站点)

Maven坐标

Maven常见的依赖范围

依赖的传递:

(下午)

下载

?安装/解压

配置环境变量

?测试

Maven仓库

?配置本地仓库

?配置阿里云的远程仓库

idea创建Maven项目

总结


什么是Maven:

译为“专家”、"内行“,是Apache基金会下的一个纯Java开发的开源项目。基于项目对象模型(缩写:POM)概念,主要用于基于Java开发的项目创建,依赖管理和项目信息管理。

Maven的优缺点:

优点:

  1. 对第三方依赖库进行统一的版本管理
  2. 统一项目的目录结构
  3. 统一软件构建阶段
  4. 便于项目升级,无论是项目本身升级还是项目使用的依赖升级。
  5. 有助于多模块项目的开发,一个模块开发好后,发布到仓库,依赖该模块时可以直接从仓库更新,而不用自己去编译。
  6. maven有很多插件,便于功能扩展,比如生产站点,自动发布版本等
  7. 自动生成项目网站和报表

缺点:

  1. maven是一个庞大的构建系统,学习难度大
  2. maven采用约定优于配置的策略(convention over configuration),虽然上手容易,但是一旦出了问题,难于调试。
  3. 当依赖很多时,m2eclipse 老是搞得Eclipse很卡。
  4. 中国的网络环境差,很多repository无法访问,比如google code, jboss 仓库无法访问等。

Maven生命周期:

1.clean周期:

(清理)主要用于清理上一次构建产生的文件,可以理解为删除target目录

2.默认周期:

真正进行项目编译导报等工作阶段

  1. validate:验证项目是否正确
  2. compile:编译,编译项目的源代码*****
  3. test:测试,junit这些测试不应该要求代码被打包或部署
  4. package:进行打包。
    1. java工程------------.jar
    2. javaweb工程------.war
  5. verify:验证,对集成测试结果执行检察
  6. install:安装****
    1. 所有的项目都可以编程jar包*(依赖)
  7. deploy:部署,及那个最终的包赋值到远程储存库,和其他开发人员共享(maven私服)

3.site周期:(站点)

  1. site产生项目的站点文档
  2. site-deploy将项目的站点文档部署到服务器

Maven坐标

  1. GroupId:团体组织标识符,它一般情况下以创建这个组织的名称的逆向域名开头。
  2. ArtifactId:项目名。单独项目的唯一标识符。
  3. Version:版本

通过这三个向量来定位Maven仓库中其jar包所在的位置,把对应的jar包引入到工程中

Maven常见的依赖范围

  1. compile:默认。编译范围,编译,测试,运行都有效。参与打包,安装。
  2. test:测试范围,只有在test范围下才能用,不参与打包,安装。
  3. provided:编译和测试,不参与打包,安装。
  4. runtime:运行,只参与运行。
  5. system:废弃。系统。
  6. import:废弃。引入。

依赖的传递:

比如所demo01的项目中引入了mysql,servlet,fastjson,codec依赖,那我把demo01install到了我的本地仓库,或者是maven私服,如果其他成员通过GAV引入了我的demo01,demo01中的mysql,servlet,fastjson,codec会一起引入进来

下载

1.进入官网点击👉Maven官网👈下载文件

?安装/解压

下载解压之后:把文件夹放到没有中文的路径下:我直接放到了c盘下,例如:C:\Maven\

  1. ?bin:存放了 maven 的命令
  2. boot:存放了一些 maven 本身的引导程序,如类加载器等
  3. conf:存放了 maven 的一些配置文件,如 setting.xml 文件****这个xml文件是核心
  4. lib:存放了 maven 本身运行所需的一些 jar 包

配置环境变量

右键属性?

新建一个变量:

变量名:MAVEN_HOME

变量值:Maven存放的路径(bin目录上一级)例如:C:\apache-maven-3.8.6-bin\apache-maven-3.8.6(这是我的路径)

?把MAVEN_HOME添加到Path系统变量中:%MAVEN_HOME%\bin

?测试

打开cmd输入:mvn -v

?出现以下内容证明安装成功

Maven仓库

Maven中的仓库是用来存放maven构建的项目和各种依赖的(Jar包)。
?Maven的仓库分类:

  1. 本地仓库: 位于自己计算机中的仓库, 用来存储从远程仓库或中央仓库下载的插件和 jar 包,
  2. 远程仓库: 需要联网才可以使用的仓库,阿里提供了一个免费的maven 远程仓库。
  3. 中央仓库: 在 maven 软件中内置一个远程仓库地址 http://repo1.maven.org/maven2 ,它是中 央仓库,服务于整个互联网,它是由 Maven 团队自己维护,里面存储了非常全的 jar 包,它包 含了世界上大部分流行的开源项目构件

?配置本地仓库

在maven安装目录中,进入 conf文件夹, 可以看到一个settings.xml 文件,我们在这里配置

?

?配置阿里云的远程仓库

原来的库是连接外国的库,连不上,所以要改成咱们阿里云的镜像仓库?

?代码:??

 <mirror>
? ? ? <id>nexus-aliyun</id>
? ? ? <mirrorOf>central</mirrorOf> ?
? ? ? <name>aliyun maven</name>
? ? ? <url>http://maven.aliyun.com/nexus/content/groups/public</url>
? ? </mirror>

idea创建Maven项目

接下来就可以去idea创建一个maven的项目了

首先一定要选中Maven,创建一个Maven的项目

?打开IDEA 选择File --> Settings --> 搜素maven,就会看到如下界面,并修改路径

?之后工程就是这个样子,如果不是,请重新开启idea

?maven导入依赖:在pom.xml文件里,例如导入mysql\junit\servlet等包

<dependencies>
? ? ? ? <dependency>
? ? ? ? ? ? <groupId>mysql</groupId>
? ? ? ? ? ? <artifactId>mysql-connector-java</artifactId>
? ? ? ? ? ? <version>5.1.49</version>
? ? ? ? </dependency>
? ? ? ? <dependency>
? ? ? ? ? ? <groupId>junit</groupId>
? ? ? ? ? ? <artifactId>junit</artifactId>
? ? ? ? ? ? <version>4.13.2</version>
? ? ? ? ? ? <scope>test</scope>
? ? ? ? </dependency>
? ? ? ? <dependency>
? ? ? ? ? ? <groupId>javax.servlet</groupId>
? ? ? ? ? ? <artifactId>javax.servlet-api</artifactId>
? ? ? ? ? ? <version>4.0.1</version>
? ? ? ? ? ? <scope>provided</scope>
? ? ? ? </dependency>
? ? </dependencies>

点击刷新,他就会自动在阿里云镜像仓库里下载下来存到本地的仓库中
?

总结

? ? ? ? 今天学的Maven是新的架构知识,作用就是通过它连接jar包,调用起来更方便、效率更高

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-09-21 00:12:55  更:2022-09-21 00:15:43 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 10:18:51-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码