欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

maven详解——转

程序员文章站 2022-03-08 17:53:52
...

Maven概念
Maven作为一个构建工具,不仅能帮我们自动化构建,还能够抽象构建过程,提供构建任务实现;它跨平台,对外提供了一致的操作接口,这一切足以使它成为优秀的、流行的构建工具。

Maven不仅是构建工具,还是一个依赖管理工具和项目管理工具,它提供了*仓库,能帮我自动下载构件。

maven的安装
一:因为本人是window系统,所以这里只介绍window下如何安装,在安装Maven之前,先确认已经安装了JDK.640?wx_fmt=png&wxfrom=5&wx_lazy=1maven详解——转

二:接着去Maven官网下载界面下载想要的版本解压到你想要的目录就行0?wx_fmt=pngmaven详解——转

0?wx_fmt=png
maven详解——转
三:最后设置一下环境变量,将Maven安装配置到操作系统环境中,主要就是配置M2_HOME 和PATH两项,如图0?wx_fmt=pngmaven详解——转maven详解——转

都搞定后,验证一下,打开doc输入 mvn -v如何得到下面信息就说明配置成功了0?wx_fmt=pngmaven详解——转

maven目录
0?wx_fmt=pngmaven详解——转

  • bin目录:该目录包含了mvn运行的脚本,这些脚本用来配置java命令,准备好classpath和相关的Java系统属性,然后执行Java命令。- boot目录: 该目录只包含一个文件,该文件为plexus-classworlds-2.5.2.jar。plexus-classworlds是一个类加载器框架,相对于默认的java类加载器,它提供了更加丰富的语法以方便配置,Maven使用该框架加载自己的类库。- conf目录:该目录包含了一个非常重要的文件settings.xml。直接修改该文件,就能在机器上全局地定制Maven的行为,一般情况下,我们更偏向于复制该文件至~/.m2/目录下(~表示用户目录),然后修改该文件,在用户范围定制Maven的行为。- lib目录:该目录包含了所有Maven运行时需要的Java类库,Maven本身是分模块开发的,因此用户能看到诸如maven-core-3.0.jar、maven-model-3.0.jar之类的文件,此外这里还包含一些Maven用到的第三方依赖如commons-cli-1.2.jar、commons-lang-2.6.jar等等。

    Maven常用命令说明
    mvn clean:表示运行清理操作(会默认把target文件夹中的数据清理)。mvn clean compile:表示先运行清理之后运行编译,会将代码编译到target文件夹中。mvn clean test:运行清理和测试。mvn clean package:运行清理和打包。mvn clean install:运行清理和安装,会将打好的包安装到本地仓库中,以便其他的项目可以调用。mvn clean deploy:运行清理和发布(发布到私服上面)。

上面的命令大部分都是连写的,大家也可以拆分分别执行,这是活的,看个人喜好以及使用需求,Eclipse Run as对maven项目会提供常用的命令。

设置http代理
编辑seeting.xml文件有时候你所在的公司基于安全因素考虑,要求你使用通过安全认证的代理访问因特网。这种情况下,就需要为Maven配置HTTP代理,才能让它正常访问外部仓库,以下载所需要的资源。首先确认自己无法直接访问公共的maven*仓库,直接运行命令ping repo1.maven.org可以检查网络。如果真的需要代理,先检查一下代理服务器是否畅通。比如现在有一个IP地址为218.14.227.197,端口为3128的代理服务,我们可以运行telnet 218.14.227.197 3128来检测该地址的该端口是否畅通。如果得到出错信息,需要先获取正确的代理服务信息,如果telnet连接正确,则输入ctrl+],然后q,回车,退出即可。

检查完毕之后,编辑~/.m2/settings.xml文件(如果没有该文件,则复制$M2_HOME/conf/settings.xml)。添加代理配置如下:

<proxy>  

  <id>my-proxy</id>  

  <active>true</active>  

  <protocol>http</protocol>  

  <host>218.14.227.197</host>  

  <port>3128</port>  

  <!--  

    <username>***</username>  

    <password>***</password>  

    <nonProxyHosts>  

      repository.mycom.com|*.google.com  

    </nonProxyHosts>  

  -->  

</proxy>  

这段配置十分简单,proxies下可以有多个proxy元素,如果声明了多个proxy元素,则默认情况下第一个被**的proxy会生效。这里声明了一个id为my-proxy的代理,active的值为true表示**该代理,protocol表示使用的代理协议,这里是http。当然,最重要的是指定正确的主机名(host元素)和端口(port元素)。上述xml配置中注释掉了username,password,nonProxyHosts几个元素。当代理服务需要认证时,就需要配置username和password。nonProxyHost元素用来指定哪些主机不需要代理,可以使用”|”符号来分隔多个主机名。此外,该配置也支持通配符,如:*.google.com表示所有以google.com结尾的域名访问都不要通过代理。

Maven插件安装,基于IDEA
博主现在使用IDEA来开发的,所以这里介绍一下IDEA中如何配置引入我们上面下载好的Maven0?wx_fmt=pngmaven详解——转

Maven使用
0?wx_fmt=png
maven详解——转

代码的第一行是XML头,指定了该xml文档的版本和编码方式。project是所有pom.xml的根元素,它还声明了一些POM相关的命名空间及xsd元素。根元素下的第一个子元素modelVersion指定了当前的POM模型的版本,对于Maven3来说,它只能是4.0.0代码中最重要是包含了groupId,artifactId和version了。这三个元素定义了一个项目基本的坐标,在Maven的世界,任何的jar、pom或者jar都是以基于这些基本的坐标进行区分的。

groupId定义了项目属于哪个组,随意命名,比如谷歌公司的myapp项目,就取名为 com.google.myapp

artifactId定义了当前Maven项目在组中唯一的ID,比如定义hello-world。

version指定了项目当前的版本0.0.1-SNAPSHOT,SNAPSHOT意为快照,说明该项目还处于开发中,是不稳定的。

name元素生命了一个对于用户更为友好的项目名称,虽然这不是必须的,但还是推荐为每个POM声明name,以方便信息交流

依赖的配置

<dependency>

    <groupId>实际项目</groupId>

     模块

     版本

     依赖类型

     依赖范围

     依赖是否可选

    

相关标签: maven