Maven的简单使用

 

一、前言

mavenjava的包管理工具,相当于是nodejs中的npmphp中的composerpython中的pip(如果有一个中了,那么你应该就了解了)。应用maven可以方便地引入各种java的第三方类库(包括SpringStrutsjunit等)和插件(如tomcat等)。

本文采用intelliJ IDEA作为集成开发环境(IDE),在其中创建一个maven的项目,并在其中引入Apache Common Math库(一个用于科学计算的类库),完成一些简单的计算实现。

二、下载maven

软件下载安装从来不是难事,先进入maven官网http://maven.apache.org/,然后在左侧点进download页面download.cgi,拖到下面File中,windows系统下载后缀为bin.zip的文件即可。

下载过后解压到一个文件夹下,我把它放到了C:MyFoldsToolsapache-maven-3.5.0下,这个目录便是maven的根目录了,里面包含binbootconflib4个文件夹,还有LICENSENOTICEREADME.txt文件,如下图。

 

bin是一个常用的目录,我们可以把它添加到系统的环境变量中,这样,我们就可以在命令行中使用了。此时应该来一个”mvn -v“的指令。

 

当然,这一步对我们之后的操作影响不大,因为java不是一个跟命令行关系很大的语言。

二、IntelliJ IDEA中集成maven

IntelliJ IDEA应该不用多介绍,除了占用的系统资源多之外,很难再找出什么缺点出来,用起来非常舒服。这里我们假定你已经在IDEA中配置好java

废话不多说,我们打开IDEA,然后File->Settings打开Settings(设置)页面,再找的话应该是Build,Execution,Deployment->Build Tools->Maven,我们也可以通过搜索来快速找到。

 

需要配置的是其中的Maven home directory,点击右侧的“...”,然后选择maven的根目录即可。倒三角里有IDEA集成的maven,也可以选择,不过不是最新版的。

三、创建一个maven项目

java设计者的眼中,所有代码都是项目加配置,maven也不例外,要使用maven需要先创建一个项目,并写好一个名为pom.xml的配置文件。

先普及一点小知识,POM的英文全称是Project Object Model,即项目对象模型,我就不说它和DOM(文档对象模型)类似了,因为这完全就是两个东西。pom.xmlmaven所依赖的项目描述配置文件,在这里可以定义一些项目的相关数据,例如作者、公司和项目名等,当然最关键的还是它可以引入类库的依赖,从而不用再到各大官方网站上下载jar包。

好了,我们回到任务中来。在配置完了maven路径之后,我们点击File->New->Project,然后点击左侧的Maven,右侧会出现很多archetype,这是maven中很多人贡献的maven项目构建框架,我们这里不用这个,直接点击Next进入下一步。

 

进入下一步,它会让你填写三个参数:GroupIdArtifactIdVersion。这个三元组在maven中被称为坐标,在之后引入类库时还会用到。为了进行下去,我们不多介绍,只给出填写的说明。GroupId一般为公司名或公司网址,例如说org.springframework,便是spring框架一般会使用的GroupId(没公司的话,编你还不会吗?没有梦想吗?),这里我填入com.vastsum,虽然这个公司已经不存在了,但是灵魂仍在传承。ArtifactId你可以理解为项目名(Artifact是艺术品的意思,可见maven的作者很会起名字),当然如果只是一个组件的话可以用“-”来分割,如spring-context,这里我们就写demo吧。最后Version填个1.0或者1.1.0的都可以,默认的1.0-SNAPSHOT,表示这是一个快照,还没正式上线。

 

进入下一步,设置Project NameProject location,注意到它会把ArtifactId直接当做项目名,这可以修改,但是也没必要,我们Finish完成创建。

四、项目概览

如果不出意外,项目的结构会如下图所示。其中.ideaIDEA项目配置文件,src目录用于放源代码,main是功能代码,test是测试代码,两个文件夹中的java文件夹用于放置java代码,resources用于放各类资源文件,demo.iml用于描述IDEA项目结构,接下来便是最关键的之前所说的pom.xmlExternal Libraries是扩展类库。

 

我们打开pom.xml,其中的内容如下。

<?xml version="1.0" encoding="UTF-8"?>
<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>


    <groupId>com.vastsum</groupId>
    <artifactId>demo</artifactId>
    <version>1.0-SNAPSHOT</version>
</project>

xml配置是java项目的特色,这也标志着java很难脱离IDE工具,估计再厉害的人也记不住那么多的xmlnsxsi吧。

我们大致分析一下这个基本的pom.xml文件。首先,整个文档的根节点是project,然后一个modelVersion指定这个pom.xml文档所用的规范,然后便是三个之前见到的元素groupIdartifactIdversion

IDEA的右侧会有一个Maven Project窗口。

 

五、引入依赖

接下来,我们引入Apache Common Math库。我们可以到http://mvnrespository.com中搜索类库,当然,在百度里搜索apache common math maven,第一个结果也是这个。

点击下面的版本,就能获取一个mavendependency的代码。如下:

<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-math3 -->

<dependency>

    <groupId>org.apache.commons</groupId>

    <artifactId>commons-math3</artifactId>

    <version>3.6.1</version>

</dependency>

 

我们把这段代码复制到pom.xml中,用dependencies包裹起来,此时IDEA便会在右下角有提示,点击“import changes”,IDEA就会自动把所需要的依赖下载下来。

 

六、测试代码

最后,我们来尝试使用这个组件。

src/main/java中创建文件Mathlib.java

import org.apache.commons.math3.stat.descriptive.moment.Mean;

public class Mathlib {
    public static void main(String[] args)
    {
        double[] values = new double[] {3,4,66,34,12};
        Mean mean = new Mean();
        System.out.println(mean.evaluate(values));
    }
}

代码很简单,定义一个数组,调用Mean类的evaluate方法求这个数组的平均值。

执行,可得结果:

 

此处仅为说明maven已经成功地将dependency引入项目了。

原文地址:https://www.cnblogs.com/getupmorning/p/7249014.html