maven环境搭建及简单介绍

时间:2022-06-23
本文章向大家介绍maven环境搭建及简单介绍,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

一、Maven环境搭建

maven是使用java开发的,所以要使用maven,必须得有jdk,这里就不再赘述了。

(1)http://maven.apache.org/下载相应的压缩包 (2)配置环境变量 在系统变量中添加M2_HOME,值为Maven的安装路径 在Path值的后面添加;%M2_HOME%bin (3)在命令行中输入mvn -v

如果显示如上图,则说明配置成功,否则检查一下哪步出错了。

二、Maven介绍

(1)maven两大核心

  • 依赖管理:对jar包进行管理。
  • 项目构建:项目在编码完成后,对项目进行编译、测试、打包、部署都可以通过命令来实现。

(2)maven仓库类型

  • 本地仓库:在个人的计算机上。
  • 私服:存在于局域网上的一台服务器。
  • 中央仓库:在互联网上,有maven团队进行维护。

如果我们拥有一个中央的仓库那该多好,想用什么jar包就用什么jar,但无奈那堵墙,使得中央仓库的下载速度很慢。我们可以使用阿里云的maven镜像,里面的jar是比较全的,关键下载速度还快。只需要在我们解压出来的maven压缩包里的conf文件夹下的settings.xml配置一下就可以了。打开找到 <mirrors>标签,在里面加上下面的代码


<mirror>
      <id>alimaven</id>
      <name>aliyun maven</name>
      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
      <mirrorOf>central</mirrorOf>        
</mirror>

三、Maven项目的目录结构


src
       -main
               -java
                       -package
       -test
               -java
                       -package
       -resources

四、maven常用命令

介绍命令之前,先创建好maven项目并写一些代码。

在main文件夹下有一个Maven01.java

package com.codeliu.maven;

public class Maven01 {
    public String say() {
        return "Hello world";
    }
}

在test 文件夹下有一个MavenTest.java

package com.codeliu.maven;

import org.junit.*;
public class MavenTest {
    @Test
    public void testMaven01() {
        Assert.assertEquals("Hello world", new Maven01().say());
    }
}

下面开始介绍命令。

1)mvn compile

听名字都知道,这个肯定是编译,将.java文件编译成.class文件。

我们进入项目的根目录下,输入这个命令,会发现根目录下会多一个target的文件夹,里面就有.class文件。

(2)mvn clean

这个命令,可以清除我们生成的.class文件,执行此命令后,target文件夹会消失。

(3)mvn test

执行此命令后,就会运行test文件夹下的测试代码

注意:测试代码必须放在test文件下,且必须以*Test.java命名。

(4)mvn package

这个命令是把项目进行打包,如果是普通的java项目,就会打包成jar,如果是web项目,就会打包成war。

它会存放在我们项目根目录下的target文件夹下。

(5)mvn install

有时候如果我们一个项目要用到另一个项目的一些代码,那肯定是copy啊,现在使用maven就不一样了,我们可以使用mvn install命令,将我们自己的项目生成jar包,这样其他项目要使用只需要import一下就可以了。

可以看到,把生成的jar包放在了这个目录下,其实这个目录就是我们maven本地仓库的默认路径(如果你没有进行修改的话)

五、maven项目的生命周期

在maven中存在“三套”生命周期,它们互不影响,相互独立。

  • CleanLifeCycle:清理生命周期,对应上面的clean命令。
  • defaultLifeCycle:默认生命周期,compile,test,package,install,deploy(部署)。
  • siteLifeCycle:站点生命周期。site。

为啥说它们互不影响呢?因为执行clean命令,并不会执行默认生命周期中的命令,执行compile命令,也不会执行clean命令。但如果你执行install命令,那么前面的compile,test,package操作都会执行。