栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Maven简介、下载、安装、配置以及使用

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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版本。

     
    JDK-1.8       
           
        true       
        1.8       
           
           
        1.8       
        1.8       
        1.8       
           


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:javamaven-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:javaMavenapache-maven-3.8.4maven-repositorycomwuhaomavenquickstartmyWebApp.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”

步骤二:输入关键字查询获得需要内容,确定需要版本

步骤三、获得坐标

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/703588.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号