Maven的安装和使用

1. Maven

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

1.1 依赖管理

Dependency Management(依赖管理)是指在软件工程中,管理各种组件或库之间的依赖关系以确保程序正确运行的过程。在现代软件开发中,大多数应用都利用了众多的开源组件和库,这些组件通常被保存在中央仓库中,而且相互之间有着复杂的依赖关系。因此,一个成功的项目需要一个强大的依赖管理系统来管理这些依赖项并确保应用程序的正确性

1.2 项目构建

构建:指的是项目从编译、测试、运行、打包、安装 ,部署整个过程都交给 maven 进行管理,这个过程称为构建
具体如下:

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

创建的构建工具有

  • ant
  • maven
  • Gradle

1.3 核心概念

Maven能够实现自动化构建上级和它的内部原理分不开的,
Maven的核心概念为:
-POM

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

2. Maven的安装和配置

2.1 在官网下载

Maven
在这里插入图片描述

2.2 解压文件

解压后Maven的目录结构如下:
在这里插入图片描述

2.3配置环境变量

打开电脑的环境变量添加如下:
在这里插入图片描述
配置Path路径:

测试Maven的安装
打开命令行,输入mvn -version即可看到maven的版本和其他

3. Maven的配置文件

3.1配置文件

maven的配置文件有两个

  • 全局配置文件:maven下载目录下./conf/setting.xml
  • 用户配置文件:宿主目录下, ~/.m2/settings.xml(idea中默认使用的文件)

3.2 仓库

在这里插入图片描述

3.2.1本地仓库

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

本地仓库默认的路径

  • linux:~/.m2/repository
  • windows:c:\Users\Administrator\.m2\repository\
  • 自定本地仓库:~/.m2/setting.xml
<localRepository>d:\java\mvn_repo</localRepository>

3.2.2远程仓库

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

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.3 profile文件

配置maven项目的默认的jdk版本,比如Maven项目采用JDK11

	<profile>
            <id>jdk-11</id>
            <activation>
                <activeByDefault>true</activeByDefault>
                <jdk>11</jdk>
            </activation>
            <properties>
                <maven.compiler.source>11</maven.compiler.source>
                <maven.compiler.target>11</maven.compiler.target>
                <maven.compiler.compilerVersion>11</maven.compiler.compilerVersion>
            </properties>
        </profile>

同时也可在文件pom.xml文件中修改

<properties>
        <maven.compiler.source>11</maven.compiler.source>
        <maven.compiler.target>11</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

4. maven 的补充

4.1 主干结构和命令:

在这里插入图片描述
常用的命令

  • mvn clean 清理target目录
  • mvn compile
  • mvn package
  • mvn install
  • mvn deploy 部署到远程仓库
  • mvn test 失败不能打包
  • mvn clean install
  • mvn clean install -Dmavne.test.skip=true
    忽略测试,直接部署

4.2 Maven中的坐标(gav)

Maven项目的坐标(gav坐标)在maven仓库定位构建使用groupId artifactId,version坐标来进行定位

 <groupId>com.lxs.demo</groupId>
    <artifactId>hello-maven</artifactId>
    <version>1.0-SNAPSHOT</version>

对应关系如下:
在这里插入图片描述

4.3 maven中的pom文件

<?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.lxs.demo</groupId>
    <artifactId>hello-maven</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <maven.compiler.source>11</maven.compiler.source>
        <maven.compiler.target>11</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.13.2</version>
            <scope>compile</scope>
        </dependency>
    </dependencies>

</project>

4.4 maven 的依赖(idea中实现)

在idea中创建如下依赖:maven-second 依赖 maven-first
在这里插入图片描述
1.创建空项目
在这里插入图片描述

2.配置下项目默认的JDK
在这里插入图片描述
3.创建maven-first
在这里插入图片描述
4.配置pom.xml文件

  <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.13.2</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

5.编写一个程序HelloFirst.java

package com.lxs.demo;

public class HelloFirst {

    public String sayHello() {
        return "hello first";
    }
}

6.创建测试类
按 ctrl + shift + T点击create new Test
在这里插入图片描述
7.编写HelloFirstTest.java文件

package com.lxs.demo;

import org.junit.Assert;
import org.junit.Test;

import static org.junit.Assert.*;

public class HelloFirstTest {

    HelloFirst helloFirst = new HelloFirst();

    @Test
    public void sayHello() {
        Assert.assertTrue("hello first".equals(helloFirst.sayHello()));
    }
}

8.运行并部署到本地
运行Test
编译通过
并通过下面操作部署到本地
在这里插入图片描述
9.创建maven-second
与创建maven-first同样的操作
在pom.xml文件中添加如下代码

  <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.13.2</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>com.wzx.demo</groupId>
            <artifactId>maven-first</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
    </dependencies>

10点击右上角刷新按钮后创建HelloSecond.java

package com.lxs.demo;

public class HelloSecond {

    HelloFirst helloFirst = new HelloFirst();

    public String sayHello() {
        return helloFirst.sayHello() + ":second"; //hello first:second
    }

}

11与创建HelloFirstTest.java同样的操作创建HelloSecondTest.java

package com.lxs.demo;

import org.junit.Assert;
import org.junit.Test;

import static org.junit.Assert.*;

public class HelloSecondTest {

    HelloSecond helloSecond = new HelloSecond();

    @Test
    public void sayHello() {
        Assert.assertTrue("hello first:second".equals(helloSecond.sayHello()));
    }
}

12运行Test,通过即可成功完成。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值