zoukankan      html  css  js  c++  java
  • 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引入项目了。

  • 相关阅读:
    范仁义js课程---26、循环结构(while循环)
    解决Failed to parse SourceMap: http:xxx 问题
    范仁义js课程---25、switch选择结构
    范仁义js课程---24、条件运算符
    范仁义js课程---23、if选择结构小实例
    范仁义js课程---22、选择结构(if)
    javascript疑难问题---4、NaN的相等性判断
    范仁义js课程---21、js运算符优先级
    android L新控件RecyclerView详解与DeMo[转]
    Color Cube – 国产的优秀配色取色工具
  • 原文地址:https://www.cnblogs.com/getupmorning/p/7249014.html
Copyright © 2011-2022 走看看