1、前言php
maven是java的包管理工具,至关因而nodejs中的npm,php中的composer,python中的pip(若是有一个中了,那么你应该就了解了)。应用maven能够方便地引入各类java的第三方类库(包括Spring、Struts、junit等)和插件(如tomcat等)。java
本文采用intelliJ IDEA做为集成开发环境(IDE),在其中建立一个maven的项目,并在其中引入Apache Common Math库(一个用于科学计算的类库),完成一些简单的计算实现。node
2、下载mavenpython
软件下载安装历来不是难事,先进入maven官网http://maven.apache.org/,而后在左侧点进download页面download.cgi,拖到下面File中,windows系统下载后缀为bin.zip的文件便可。spring
下载事后解压到一个文件夹下,我把它放到了C:\MyFolds\Tools\apache-maven-3.5.0下,这个目录即是maven的根目录了,里面包含bin、boot、conf、lib这4个文件夹,还有LICENSE、NOTICE和README.txt文件,以下图。apache
bin是一个经常使用的目录,咱们能够把它添加到系统的环境变量中,这样,咱们就能够在命令行中使用了。此时应该来一个”mvn -v“的指令。npm
固然,这一步对咱们以后的操做影响不大,由于java不是一个跟命令行关系很大的语言。windows
2、在IntelliJ IDEA中集成maven数组
IntelliJ IDEA应该不用多介绍,除了占用的系统资源多以外,很难再找出什么缺点出来,用起来很是舒服。这里咱们假定你已经在IDEA中配置好java。tomcat
废话很少说,咱们打开IDEA,而后File->Settings打开Settings(设置)页面,再找的话应该是Build,Execution,Deployment->Build Tools->Maven,咱们也能够经过搜索来快速找到。
须要配置的是其中的Maven home directory,点击右侧的“...”,而后选择maven的根目录便可。倒三角里有IDEA集成的maven,也能够选择,不过不是最新版的。
3、建立一个maven项目
在java设计者的眼中,全部代码都是项目加配置,maven也不例外,要使用maven须要先建立一个项目,并写好一个名为pom.xml的配置文件。
先普及一点小知识,POM的英文全称是Project Object Model,即项目对象模型,我就不说它和DOM(文档对象模型)相似了,由于这彻底就是两个东西。pom.xml是maven所依赖的项目描述配置文件,在这里能够定义一些项目的相关数据,例如做者、公司和项目名等,固然最关键的仍是它能够引入类库的依赖,从而不用再到各大官方网站上下载jar包。
好了,咱们回到任务中来。在配置完了maven路径以后,咱们点击File->New->Project,而后点击左侧的Maven,右侧会出现不少archetype,这是maven中不少人贡献的maven项目构建框架,咱们这里不用这个,直接点击Next进入下一步。
进入下一步,它会让你填写三个参数:GroupId,ArtifactId和Version。这个三元组在maven中被称为坐标,在以后引入类库时还会用到。为了进行下去,咱们很少介绍,只给出填写的说明。GroupId通常为公司名或公司网址,例如说org.springframework,即是spring框架通常会使用的GroupId(没公司的话,编你还不会吗?没有梦想吗?),这里我填入com.vastsum,虽然这个公司已经不存在了,可是灵魂仍在传承。ArtifactId你能够理解为项目名(Artifact是艺术品的意思,可见maven的做者很会起名字),固然若是只是一个组件的话能够用“-”来分割,如spring-context,这里咱们就写demo吧。最后Version填个1.0或者1.1.0的均可以,默认的1.0-SNAPSHOT,表示这是一个快照,还没正式上线。
进入下一步,设置Project Name和Project location,注意到它会把ArtifactId直接当作项目名,这能够修改,可是也不必,咱们Finish完成建立。
4、项目概览
若是不出意外,项目的结构会以下图所示。其中.idea是IDEA项目配置文件,src目录用于放源代码,main是功能代码,test是测试代码,两个文件夹中的java文件夹用于放置java代码,resources用于放各种资源文件,demo.iml用于描述IDEA项目结构,接下来即是最关键的以前所说的pom.xml。External 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工具,估计再厉害的人也记不住那么多的xmlns和xsi吧。
咱们大体分析一下这个基本的pom.xml文件。首先,整个文档的根节点是project,而后一个modelVersion指定这个pom.xml文档所用的规范,而后即是三个以前见到的元素groupId、artifactId和version。
在IDEA的右侧会有一个Maven Project窗口。
5、引入依赖
接下来,咱们引入Apache Common Math库。咱们能够到http://mvnrespository.com中搜索类库,固然,在百度里搜索apache common math maven,第一个结果也是这个。
点击下面的版本,就能获取一个maven的dependency的代码。以下:
<!-- 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就会自动把所须要的依赖下载下来。
6、测试代码
最后,咱们来尝试使用这个组件。
在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引入项目了。