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知识库 -> Maven简介、下载、安装、配置以及使用 -> 正文阅读

[Java知识库]Maven简介、下载、安装、配置以及使用

- Maven简介
Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件。
Maven 除了以java程序构建能力为特色之外,还提供高级项目管理工具。由于 Maven 的缺省构建规则有较高的可重用性,所以常常用两三行 Maven 构建脚本就可以构建简单的项目。由于 Maven 的面向项目的方法,许多 Apache Jakarta 项目发文时使用 Maven,而且公司项目采用 Maven 的比例在持续增长。
Maven这个单词来自于意第绪语(犹太语),意为知识的积累,最初在Jakata Turbine项目中用来简化构建过程。当时有一些项目(有各自Ant build文件),仅有细微的差别,而JAR文件都由CVS来维护。于是希望有一种标准化的方式构建项目,一个清晰的方式定义项目的组成,一个容易的方式发布项目的信息,以及一种简单的方式在多个项目中共享JARs。
通俗点来说,就是通过pom.xml文件的配置获取jar包,而不用手动去添加jar包,而这里pom.xml文件对于学maven的人来说,就很熟悉了,比如怎么通过pom.xml的配置就可以获取到jar包呢?pom.xml配置文件从何而来?等等类似问题我们需要搞清楚,如果需要使用pom.xml来获取jar包,那么首先该项目就必须为maven项目,maven项目可以这样去想,就是在java项目和web项目的上面包裹了一层maven,本质上java项目还是java项目,web项目还是web项目,但是包裹了maven之后,就可以使用maven提供的一些功能了(通过pom.xml添加jar包)。
- Maven下载
我们去官网下载最新版本
https://maven.apache.org/download.cgi
在这里插入图片描述
国外网站可能访问很慢,为网不好的同学准备了阿里云镜像
https://developer.aliyun.com/packageSearch?word=maven
我们选择一个最新版本下载即可。
下载完之后解压到你想要存放的文件夹如图:
在这里插入图片描述
- Maven安装

  • 新建环境变量Maven_Home:对应maven安装主目录
    在这里插入图片描述
  • 编辑path环境变量追加:%Maven_Home%\bin
    在这里插入图片描述
  • 测试mvn环境变量配置是否成功,在cmd界面,输入:mvn -v
    在这里插入图片描述
    - Maven仓库
    maven工程需要配置仓库,本地的项目A项目B等通过maven从第三方仓库(网络上的仓库)下载jar包并存在本地仓库,本地仓库就是本地文件夹,当第二次需要此jar包时则不需要从第三方仓库下载,因为本地仓库已经存在了,可以将本地仓库理解为缓存,有了本地仓库就不用每次从第三方仓库下载。
    Maven仓库类型:
    本地仓库:用来存储第三方仓库或者中央仓库下载的插件和jar包,项目使用一些插件或jar包,优先从本地仓库查找。每个电脑默认的仓库是在 $user.home/.m2/repository下
    第三方仓库:如果本地需要插件或者jar包,本地仓库没有,默认去第三方仓库下载。第三方仓库,又称为内部中心仓库,也称为私服
    私服:一般是由公司自己设立的,只为本公司内部共享使用。它既可以作为公司内部构件协作和存档,也可作为公用类库镜像缓存,减少在外部访问和下载的频率。(使用私服为了减少对中央仓库的访问
    私服可以使用的是局域网,中央仓库必须使用外网
    也就是一般公司都会创建这种第三方仓库,保证项目开发时,项目所需用的jar都从该仓库中拿,每个人的版本就都一样。
    注意:连接私服,需要单独配置。如果没有配置私服,默认不使用
    中央仓库:在maven环境内部内置一个远程仓库地址http://repo1.maven.org/maven2,它是中央仓库,服务于整个互联网,它是由maven自己维护,里面有大量的常用类库,并包含该了世界上大部分流行的开源项目构件。目前是以java为主工程依赖的jar包如果本地仓库没有,默认从中央仓库下载
    在这里插入图片描述
    - Maven配置
    新建一个本地仓库文件夹,如图:
    在这里插入图片描述
    大家打开settings.xml,位置目录如下图:
    在这里插入图片描述
    打开之后在这里加上这么一句,来进行本地仓库位置修改:
    在这里插入图片描述
    添加指定阿里云作为我们的中央仓库,不添加的话,默认是国外的中央仓库 (国外网速很慢很慢!)
    添加了之后,我们下载东西就会快很多。添加 alimaven * aliyun maven http://maven.aliyun.com/nexus/content/repositories/central/
    在这里插入图片描述
    maven默认jdk修改:
    在标签下添加一个标签,修改maven默认的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>

  • Idea和eclipse配置maven
    目前常用的开发工具如idea,eclipse都自身集成了一个版本的Maven。但是我们习惯了使用自己已经配置好的Maven。
    idea配置maven:
    Maven home directory:此处修改为自己解压的Maven目录
    user seting file:勾选Override,修改为自己目录下的settings.xml目录
    local repository:修改为自己的本地仓库地址,一般会自动识别。
    在这里插入图片描述
    maven-importing:这个界面我们需要勾选自动导包import maven projects automatically
    在这里插入图片描述
    eclipse配置maven:
    1:将eclipse使用的Maven修改为自己的。点击add后选择自己Maven的安装目录即可。添加好之后记得勾选我们刚刚添加的maven。
    在这里插入图片描述
    2:将所有的settings修改为自己Maven目录下的conf/settings.xml.点击Update Settings按钮,下面的Local Respository会自动识别出来。点击apply and close
    在这里插入图片描述
    - 使用命令行管理maven项目
    1:创建maven java项目
    自己创建一个文件夹,在该文件夹下按shift+右击,点开使用命令行模式,这样创建的maven[java]项目就在该文件夹下了。命令:mvn archetype:create -DgroupId=com.wuhao.maven.quickstart -DartifactId=simple -DarchetypeArtifactId=maven-archetype-quickstart
    mvn:核心命令
    archetype:create:创建项目,现在maven高一点的版本都弃用了create命令而使用generate命令了。
    -DgroupId=com.wuhao.maven.quickstart :创建该maven项目时的groupId是什么,该作用在上面已经解释了。一般使用包名的写法。因为包名是用公司的域名的反写,独一无二
    -DartifactId=simple:创建该maven项目时的artifactId是什么,就是项目名称
    -DarchetypeArtifactId=maven-archetype-quickstart:表示创建的是[maven]java项目
    运行的前提:需要联网,必须上网下载一个小文件
    在这里插入图片描述

注意:本人maven-3.8.4进行命令行创建项目时输入以上命令创建失败,将create改为generate就可以正常创建,版本命令冲突,即在maven3.0.5以上版本舍弃了create,使用generate生成项目
在这里插入图片描述
在D:\java\maven-demo下就会生成一个simple的文件,该文件就是我们的maven java项目
在这里插入图片描述
maven java项目结构:
simple
  —pom.xml    核心配置,项目根下
  —src
  —main      
    —java    java源码目录
    —resources  java配置文件目录
   —test
     —java    测试源码目录
     —resources  测试配置目录

在这里插入图片描述
如果该java项目进行了编译,src/main/java下的源代码就会编译成.class文件放入target目录中,target就是输出目录。
在这里插入图片描述
2:创建maven web项目
命令:mvn archetype:generate -DgroupId=com.wuhao.maven.quickstart -DartifactId=myWebApp -DarchetypeArtifactId=maven-archetype-webapp -Dversion=0.0.1-snapshot
其他都差不多,创建maven web项目的话
-DarchetypeArtifactId=maven-archetype-webapp 比创建java项目多了一个
-Dversion=0.01-snapshot, 在创建java项目的时候也可以加上这个,如果不写,会默认帮我们加上1.0-snapshot。
在这里插入图片描述
maven web项目结构:
pom.xml 核心配置
src/main/java java源码
src/main/resources java配置
src/main/webapp myeclipse web项目中 WebRoot目录
  |-- WEB-INF
|-- web.xml
src/test 测试
target 输出目录
在这里插入图片描述
命令操作maven java或web项目

编译:mvn compile  --src/main/java目录java源码编译生成class (target目录下)
测试:mvn test    --src/test/java 目录编译
清理:mvn clean    --删除target目录,也就是将class文件等删除
打包:mvn package  --生成压缩文件:java项目#jar包;web项目#war包,也是放在target目录下
安装:mvn install   --将压缩文件(jar或者war)上传到本地仓库

例如使用命令操作maven java项目
注意:使用命令时,必须在maven java项目的根目录下,及可以看到pom.xml
描述:将maven java项目打包上传到本地仓库供别人调用
使用 mvn install布:mvn deploy  --将压缩文件上传私服
在这里插入图片描述

在这里插入图片描述

在本地仓库中查看是否有该项目D:\java\Maven\apache-maven-3.8.4\maven-repository\com\wuhao\maven\quickstart\myWebApp\0.0.1-snapshot通过在本地仓库中的目录可以发现为什么通过groupId、artifactId、version可以定位到仓库中得war包,也可以知道为什么groupId要使用公司域名的反写(因为这样唯一,不会与别的项目重名导致查找到的内容不精确)
在这里插入图片描述

maven项目的完整生命周期,当执行生命周期后面命令时,前面步骤的命令自动执行
在这里插入图片描述
红色标记字体的意思就是当我们直接使用mvn install命令对项目进行上传至本地仓库时,那么前面所有的步骤将会自动执行,比如源代码的编译,打包等等。

maven java或web项目转换Eclipse工程
mvn eclipse:eclipse
mvn eclipse:clean  清楚eclipse设置信息,又从eclipse工程转换为maven原生项目了    
…转换IDEA工程
mvn idea:idea
mvn idea:clean  同上

pom.xml的依赖关系讲解(重点):
之前一直在使用pom.xml中找jar包最关键的三个属性,groupId、artifactId、version,应该有些印象了,也知道为什么通过这三个能找到对应的jar包,但是没有细讲其中的一些小的知识点,比如上面添加servlet-jar和jsp-jar的依赖时,出现的一些属性就不太懂,所以,这一章节,就将依赖关系全面分析
如何获取坐标(也就是三个关键属性值)
使用百度搜索[从中央仓库拿]
步骤一:百度搜索关键字“maven repository”
在这里插入图片描述
步骤二:输入关键字查询获得需要内容,确定需要版本
在这里插入图片描述
步骤三、获得坐标
在这里插入图片描述
在这里插入图片描述

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-01-14 01:50:01  更:2022-01-14 01:50:54 
 
开发: 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/24 7:19:15-

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