maven环境配置

文章目录

  • 1 maven简介
    • 1.1 依赖管理
    • 1.2 项目构建
    • 1.3 maven核心概念
  • 2 maven安装
    • 2.1 下载,解压,配置
    • 2.2 配置文件
      • 2.2.1 本地仓库配置
      • 2.2.2 阿里云镜像仓库
  • 3 仓库
    • 3.1 本地仓库
    • 3.2 远程仓库
      • 3.2.1 中央仓库
      • 3.2.2 镜像私服
    • 3.3 mvn坐标
  • 4 maven常用命令
  • 5 maven依赖
    • 实例

1 maven简介

Maven 是 Apache 软件基金会组织维护的一款自动化构建工具, 专注服务于 Java 平台的项目构建和依赖管理。
所用:

  • 依赖管理
  • 项目构建

1.1 依赖管理

maven环境配置_第1张图片

  • 添加junit依赖

    junit
    junit
    4.13.2
    compile

  • 添加完成后右键重新加载maven
    maven环境配置_第2张图片

1.2 项目构建

  • 清理:删除以前的编译结果,为重新编译做好准备。
  • 编译:将 Java 源程序编译为字节码文件。
  • 测试:针对项目中的关键点进行测试,确保项目在迭代开发过程中关键点的正确性。
  • 报告:在每一次测试后以标准的格式记录和展示测试结果。
  • 打包:将一个包含诸多文件的工程封装为一个压缩文件用于安装或部署。 Java 工程对应 jar 包, Web工程对应 war 包。
  • 安装:在 Maven 环境下特指将打包的结果——jar 包或 war 包安装到本地仓库中。
  • 部署:将打包的结果部署到远程仓库或将 war 包部署到服务器上运行。

创建的构建工具

  • ant
  • maven
  • Gradle

1.3 maven核心概念

Maven 能够实现自动化构建是和它的内部原理分不开的, 这里我们从 Maven 的九个核心概念入手,看看 Maven 是如何实现自动化构建的

  • POM
  • 约定的目录结构
  • 坐标
  • 依赖管理
  • 仓库管理
  • 生命周期
  • 插件和目标
  • 继承

2 maven安装

2.1 下载,解压,配置

1.下载

  • 官网下载
    maven环境配置_第3张图片

2.解压
maven环境配置_第4张图片
3.配置maven的环境变量

  • M2_HOME
    maven环境配置_第5张图片
  • PATH
    maven环境配置_第6张图片
  • 测试mvn是否安装完成
    在这里插入图片描述

2.2 配置文件

maven配置文件有2个

  • 全局配置文件d:\java\apache-maven-3.6.3\conf\settings.xml,安装目录config下
  • 用户配置文件~/.m2/settings.xml,这个配置文件开始不存在,需要自己创建.m2,拷贝配置文件

idea中默认使用用户配置文件,所以一般配置用户配置文件,这样idea就不需要在更改

2.2.1 本地仓库配置

本地仓库默认的路径

  • linux:~/.m2/repository
  • windows:c:\Users\Administrator.m2\repository\

自定本地仓库:
修改~/.m2/setting.xml

d:\java\mvn_repo

2.2.2 阿里云镜像仓库

  • 避免去中央仓库访问构件,提高访问效率
  • ~/.m2/setting.xml

    
      alimaven
      aliyun maven
      http://maven.aliyun.com/nexus/content/groups/public/
      central        
    	
 

3 仓库

maven环境配置_第7张图片

  • maven的仓库可以分为本地仓库远程仓库

3.1 本地仓库

本地仓库相当于一个缓存,在电脑上是一个文件夹,我们可以设置这个文件夹的路径(具体怎么设置会在下面的配置体现),工程第一次需要某种jar包时,会从远程仓库(互联网)下载并保存到本地仓库中(在程序员的电脑上),当第二次使用时,不需要去远程仓库下载,会先去本地仓库中找,如果找不到才会去远程仓库上下载。
默认情况下,每个用户在自己的用户目录下都有一个路径名为 .m2/respository/ 的仓库目录。

3.2 远程仓库

  • 远程仓库中分为中央仓库私服

3.2.1 中央仓库

中央仓库中的jar包由专业团队(Maven团队)维护,中央仓库中存放了全世界大多数流行的开源软件的jar包,是Maven默认的远程仓库。

http://mvnrepository.com/:搜索中央仓库的中的依赖构件

要浏览中央仓库的内容,Maven 社区提供了一个 URL:http://search.Maven.org/#browse。使用这个仓库,开发人员可以搜索所有可以获取的代码库。

3.2.2 镜像私服

私服是另一种特殊的远程仓库,为了节省带宽和时间,应该在局域网内架设一个私有的仓库服务器,用其代理所有外部的远程仓库。内部的项目还能部署到私服上供其他项目使用。除了中央仓库和私服,还有很多其他公开的远程仓库,常见的有java.net Maven库(http://download.java.net/maven/2/)和jboss Maven库(http://repository.jboss.com/maven2/)等

  • 为了提高访问远程仓库的效率可以在特定的国家区域搭建的中央仓库的镜像私服

3.3 mvn坐标

  • maven项目的坐标(gav坐标),在maven仓库定位构件使用groupId,artifactiId,version坐标来进行定位。
com.kdx.demo
hello-maven
1.0
  • 执行完mvn install本地仓库中相应的坐标下,产生jar
    maven环境配置_第8张图片

4 maven常用命令

命令 说明
mvn compile 编译程序,在target中编译成.class
mvn clean 删除target,清理输出目录
mvn test 执行测试,注意测试失败,不能打包
mvn package 打包成jar文件,输出到target
mvn install 部署jar文件,部署到本地仓库
mvn deploy 部署jar包,部署到远程仓库
mvn clean install 先清理,然后部署
mvn clean install -Dmaven.test.skip=true 忽略测试,直接部署

5 maven依赖

  • idea中的可以是一个project中有多个module

实例

maven环境配置_第9张图片
1.创建空项目
maven环境配置_第10张图片

  • 配置项目默认的JDK
    maven环境配置_第11张图片

2.在maven_learn下创建maven_first项目
maven环境配置_第12张图片

  • pom.xml配置

     
            junit
            junit
            4.13.2
            test
     

  • 创建HelloFirst类
public class HelloFirst {
    public String sayHello() {
        return "hello first";
    }
}
  • ctrl+shift+t生成HelloFirstTest类,并编写代码如下
public class HelloFirstTest {
    HelloFirst helloFirst = new HelloFirst();
    @Test
    public void sayHello() {
        Assert.assertTrue("hello first".equals(helloFirst.sayHello()));
    }
}
  • 用mvn install或者通过如下图片中点击install将maven_first部署到本地仓库
    maven环境配置_第13张图片

3.在maven_learn下创建maven_second项目
maven环境配置_第14张图片

  • pom.xml配置,引入maven_first依赖

        
            junit
            junit
            4.13.2
            compile
        

        
            com.kdx.demo
            maven_first
            1.0
        

  • 创建HelloSecond类
public class HelloSecond {
    HelloFirst helloFirst = new HelloFirst();
    public String sayHello() {
        return helloFirst.sayHello() + ":second"; //hello first:second
    }
}
    • ctrl+shift+t生成HelloSecondTest类,并编写代码如下
public class HelloSecondTest {
    HelloSecond helloSecond = new HelloSecond();
    @Test
    public void sayHello() {
        Assert.assertTrue("hello first:second".equals(helloSecond.sayHello()));
    }
}
  • 运行测试,测试通过

你可能感兴趣的:(maven,java,学习)