Maven实战之安装和使用

来源:互联网 发布:斗鱼直播for mac 编辑:程序博客网 时间:2024/06/07 08:06

MavenApache组织的一个比较好用的开源项目,它是一个跨平台的项目管理工具,主要服务于基于Java平台的项目构建、依赖管理和项目信息管理。可以说不论多小多大的项目,使用Maven都非常的方便。

 为什么要用Maven?

在开发过程中,不可避免的构建是每天都要做的工作,编写源代码除外的很大一部分时间都用来做编译、测试、打包、部署等工作,很繁琐。如果有一个工具代替你来做,是不是很方便?所以使用Maven就是来帮助你构建的。只需要mvnclean install一条简单命令,就能处理繁琐的任务。而且它有一个非常棒的地方,就是提供中央仓库,能够帮助我们自动下载组件。

通过坐标就能帮你管理每一个需要的构件(artifact)。而且唯一定位该构件。

Maven的一大作用就是消除重复。

还有一个值得注意的点,就是IDE中有自带的Maven,一般不用,因为它的版本往往是不稳定的新版,特别容易出错。

Maven安装

废话不多说,Maven安装使用,它的下载顺序是这样的,本地仓库-->私服-->中央仓库。

准备:JDKeclipseMaven;提前安装好JDKeclipse

下载Maven http://maven.apache.org/

下载apache-maven-3.5.0-bin.zip进行安装,Maven源码可以看apache-maven-src.zip

 

一、本地安装

安装很简单,解压缩zip文件到D盘中,例如D:\apache-maven,或者用命令行:D:\>jarxvf"D:\Download\apache-maven-bin.zip"

二、配置环境变量

资源管理器中我的电脑右键-->属性,高级系统设置-->环境变量,在系统变量中新建一个变量名为MAVEN_HOME,然后把Maven安装路径D:\apache-maven放进去,确定。同时找到变量名为Path的变量,在变量值的末尾加上%MAVEN_HOME%bin;注意用分号“;”隔开。

三、验证

检查maven是否安装成功,在命令提示符(cmd)输入mvn -v,如果出现了如图所示,就是成功了。



如果想升级Maven,非常简单,只要把新的Maven解压缩到原安装地址,并且修改环境变量就行。

以上是在Windows环境中安装,还有可以在Linux中试试怎么安装,也挺简单的,下载安装配置环境变量都和上面差不多,这里不再赘述。

Maven使用

安装目录分析:

在使用前,先来了解一下你安装的Maven都有神马,就是在D盘下的文件。

binmvn运行脚本,包括前面用到的mvn -v命令所使用的mvn.batbat脚本。

boot:只包含plexus-classworlds-2.5.1.jar一个文件,他是一个类加载器框架,相对于默认的java类加载器。

conf:有一个settings.xml,修改它能够全局的定制Maven行为,一般我们都是放在~/m2/user/repository/settings.xml,来定制用户范围内的Maven行为,也就是每启动一个项目就要重新配置一次maven

libMaven运行时需要的java类库,例如mave-core-3.0.jarmaven-model-3.0.jar等,还有一些第三方依赖,这是Maven的核心文件夹。

LICENSE.txtMaven内置的软件许可证;

NOTICE.txtMaven包含的第三方软件;

README.txtMaven简介等;

POM文件

pom.xmlMaven的核心,定义了项目的基本信息,用于描述项目如何构建,生命项目依赖。

代码第一行是XML头,指定了该xml文件的版本和编码方式,project元素,是pom.xml的根元素,它还声明了一些POM相关的命名空间及xsd元素,这些属性不是必须的,但使用这些属性能够让第三方工具,如IDE,帮助快速编辑POM

Pom.xml结构如下

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>com.company</groupId><artifactId>parent</artifactId><version>0.0.2-SNAPSHOT</version><relativePath>../parent/pom.xml</relativePath></parent><artifactId>kids-web</artifactId><packaging>war</packaging><dependencies><dependency><groupId>com.company</groupId><artifactId>hello-world</artifactId><version>0.0.1-SNAPSHOT</version></dependency></dependencies></project>


这些元素都是什么意思?

<modelVersion>POM模型版本

<parent>:父

<groupId>:所在的实际项目

<artifactId>:构件的名称

<version>:构件的版本

<dependencies>:依赖集

<packaging>:打包方式

<dependency>:依赖,每一个依赖只需要三个元素就能唯一定位。

主代码:

package com.company.helloworld;public class HelloWorld{public String sayHello(){return "Hello Maven";} public static void main(String[] args){System.out.print(new HelloWorld().sayHello());}}

使用Maven进行编译,在项目根目录下运行命令mvn clean compile,最后输出的结果信息为BUILD SUCCESSFUL

 

解释一下这个mvn命令,clean是告诉Maven清理输出目录target/compile是编译项目主代码。

至此,Maven在没有任何额外的配置的情况下执行了项目的气你和编译任务。

0 0