maven环境配置

1 maven简介

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

  • 依赖管理
  • 项目构建

1.1 依赖管理

在这里插入图片描述

  • 添加junit依赖
<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.13.2</version>
    <scope>compile</scope>
</dependency>
  • 添加完成后右键重新加载maven
    在这里插入图片描述

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.下载

2.解压
在这里插入图片描述
3.配置maven的环境变量

  • M2_HOME
    在这里插入图片描述
  • PATH
    在这里插入图片描述
  • 测试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

<localRepository>d:\java\mvn_repo</localRepository>

2.2.2 阿里云镜像仓库

  • 避免去中央仓库访问构件,提高访问效率
  • ~/.m2/setting.xml
<mirrors>
    <mirror>
      <id>alimaven</id>
      <name>aliyun maven</name>
      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
      <mirrorOf>central</mirrorOf>        
    </mirror>	
 </mirrors>

3 仓库

在这里插入图片描述

  • 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坐标来进行定位。
<groupId>com.kdx.demo</groupId>
<artifactId>hello-maven</artifactId>
<version>1.0</version>
  • 执行完mvn install本地仓库中相应的坐标下,产生jar
    在这里插入图片描述

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

实例

在这里插入图片描述
1.创建空项目
在这里插入图片描述

  • 配置项目默认的JDK
    在这里插入图片描述

2.在maven_learn下创建maven_first项目
在这里插入图片描述

  • pom.xml配置
<dependencies>
     <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.13.2</version>
            <scope>test</scope>
     </dependency>
</dependencies>
  • 创建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部署到本地仓库
    在这里插入图片描述

3.在maven_learn下创建maven_second项目
在这里插入图片描述

  • pom.xml配置,引入maven_first依赖
<dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.13.2</version>
            <scope>compile</scope>
        </dependency>

        <dependency>
            <groupId>com.kdx.demo</groupId>
            <artifactId>maven_first</artifactId>
            <version>1.0</version>
        </dependency>
</dependencies>
  • 创建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()));
    }
}
  • 运行测试,测试通过
  • 7
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值