【Maven】- 01 Maven 是干什么的,为什么要用,怎么来用【完整】

Maven是一个跨平台的项目管理工具,专注于Java项目的构建、依赖管理和项目信息管理。使用Maven可以简化项目构建过程,实现自动化、标准化,解决依赖管理和IDE配置差异等问题。本文介绍了Maven的安装、配置、仓库管理以及如何创建和管理Maven项目,包括依赖范围、聚合与继承等核心概念。
摘要由CSDN通过智能技术生成

一:什么是mavent?

     1.1: maven 英文翻译过来叫做“专家”,“内行”,Maven是跨平台的项目管理工具(相当于把我们知道的东西都放在一块。跨平台的项目管理工具 ) 。作为Apache组织中的一个最为成功的开源项目 ,主要服务于基于Java平台的项目构建,依赖管理和项目信息管理。无论是小型的开源类库项目,还是大型的企业级应用;无论是传统的瀑布式开发,还是流行的敏捷模式,Maven都能大显身手。

     1.2:什么是项目构建?

         项目构建过程:清理->编译->测试->报告->打包->部署  -->  理想的项目构建(高度自动化,跨平台,可重用的组件,标准化的 )

     1.3:什么是依赖管理

         依赖:可以理解为jar包之间的互相依赖,自动下载,统一依赖管理

     1.4:什么是项目信息?

          项目名称描述等,开发人员信息,开发者信息等

二:为什么要用maven

     2.1:手工操作较多,编译、测试、部署等工作都是独立的,很难一步完成:

     2.2:每个人的IDE配置都不同,很容易出现本地代码换个地方编译就出错

  • Ant?

  • 没有一个约定的目录结构

  • 必须明确让ant做什么,什么时候做,然后编译,打包

  • 没有生命周期,必须定义目标及其实现的任务序列

  • 没有集成依赖管理

  • Maven?

  • 拥有约定,知道你的代码在哪里,放到哪里去

  • 拥有一个生命周期,例如执行 mvn install 就可以自动执行编译,测试,打包等构建过程

  • 只需要定义一个pom.xml,然后把源码放到默认的目录,Maven帮你处理其他事情

  • 拥有依赖管理,仓库管理

三:怎么用mavent?

     3.1:安装maven

    3.2 : Maven安装过程

    [1]验证JDK是否正确安装,JAVA_HOME是否正确配置,这都是Maven正常工作所必需的。

         echo %JAVA_HOME%

         java -version

    [2]将安装包解压至非中文无空格目录

    [3]配置MAVEN_HOME=解压目录 MAVEN_HOME=D:\DevInstall\apache-maven-3.0.4

    [4]配置path=%MAVEN_HOME%\bin

    [5]验证安装是否成功:在命令行输入mvn -v

3.2:Maven初始配置

    [1]Maven配置文件

        {1}全局范围:位于解压目录\apache-maven-3.0.4\conf

        {2}当前用户范围:将全局范围的settings.xml文件复制到~/.m2目录下。其中~代表当前用户所在目录。

        {3}当“当前用户范围”和全局范围的settings.xml文件同时存在时,“当前用户范围”的settings.xml文件有效

    [2]配置Maven仓库

        {0}为什么要指定另外一个仓库?

        Maven执行任何功能都需要使用Maven的插件;而Maven插件并不在Maven的核心程序中。当需要用到某插件时,Maven会自动联网下载,下载到当前的仓库中。如果不能上网,则只能事先将有可能用到的插件下载好,将当前仓库指定为已下载Maven插件的那个目录,作为当前的Maven仓库。

        {1}Maven本地仓库的默认位置:~/.m2/repository。

        {2}修改本地仓库位置:在settings.xml中修改

        <localRepository>D:\DevRepository\mavenRepository03</localRepository>     

 3.3 :      Maven约定

    src/main/java —— 存放项目的.java文件

    src/main/resources —— 存放项目资源文件,如spring, hibernate配置文件

    src/test/java —— 存放所有测试.java文件,如JUnit测试类

    src/test/resources —— 测试资源文件

    target —— 项目输出位置

    pom.xml相当于web.xml

02_Maven项目举例

3.4 : 第一个Maven项目(没有使用eclipse)

    ①首先建立Hello项目同时建立Maven约定的目录结构

    Hello

     --src

     -----main

     ---------java

     ---------resources

     -----test

     ---------java

     ---------resources

     --pom.xml

    ②在项目Hello根目录建立pom.xml

    <?xml version="1.0" ?>

    <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.atguigu.maven</groupId>

      <artifactId>Hello</artifactId>

      <version>0.0.1-SNAPSHOT</version>

      <name>Hello</name>

        <dependencies>

            <dependency>

                <groupId>junit</groupId>

                <artifactId>junit</artifactId>

                <version>4.0</version>

                <scope>test</scope>

            </dependency>       

        </dependencies>

    </project>

    ③在src/main/java/com/atguigu/maven目录下新建文件Hello.java

    package com.atguigu.maven;

    public class Hello {

        public String sayHello(String name){

            return "Hello "+name+"!";

        }

    }

    ④在/src/test/java/com/atguigu/maven目录下新建测试文件HelloTest.java

    package com.atguigu.maven;

    import org.junit.Test;

    import static junit.framework.Assert.*;

    public class HelloTest {

        @Test

        public void testHello(){

            Hello hello = new Hello();

            String results = hello.sayHello("litingwei");

            assertEquals("Hello litingwei!",results);       

        }

    }

    ⑤

    a)打开cmd命令行,进入Hello项目根目录(pom.xml文件所在目录)执行 mvn compile命令,查看根目录变化

    b)cmd 中继续录入mvn clean命令,然后再次查看根目录变化

    c)cmd 中录入 mvn clean compile命令, 查看根目录变化

    d)cmd 中录入 mvn clean test命令,查看target目录变化

    e)cmd 中录入 mvn clean package命令,查看target目录变化

 

3.5 : 第二个Maven项目

    ①新建第二个项目模块目录及约定的目录结构

    HelloFriend

     --src

     -----main

     ---------java

     ---------resources

     -----test

     ---------java

     ---------resources

     --pom.xml

 

    ②在项目HelloFriend根目录建立pom.xml

    <?xml version="1.0" ?>

    <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.atguigu.maven</groupId>

      <artifactId>HelloFriend</artifactId>

      <version>0.0.1-SNAPSHOT</version>

      <name>HelloFriend</name>

        <dependencies>

            <dependency>

                <groupId>junit</groupId>

                <artifactId>junit</artifactId>

                <version>4.0</version>

                <scope>test</scope>

            </dependency>       

            <dependency>

                <groupId>com.atguigu.maven</groupId>

                <artifactId>Hello</artifactId>

                <version>0.0.1-SNAPSHOT</version>

                <scope>compile</scope>

            </dependency>       

        </dependencies>

    </project>

    ③在src/main/java/com/atguigu/maven目录下新建文件HelloFriend.java

    package com.atguigu.maven;

    import com.atguigu.maven.Hello;

    public class HelloFriend {

        public String sayHelloToFriend(String name){

            Hello hello = new Hello();

            String str = hello.sayHello(name)+" I am "+this.getMyName();

            System.out.println(str);

            return str;

        }

        public String getMyName(){

            return "John";

        }

    }

    ④在/src/test/java/com/atguigu/maven目录下新建测试文件HelloFriendTest.java

    package com.atguigu.maven;

    import static junit.framework.Assert.assertEquals;

    import org.junit.Test;

    import com.atguigu.maven.Hello;

    public class HelloFriendTest {

        @Test

        public void tesHelloFriend(){

            HelloFriend helloFriend = new HelloFriend();

            String results = helloFriend.sayHelloToFriend("litingwei");

            assertEquals("Hello litingwei! I am John",results);       

        }

    }

    ⑤在HelloFriend目录下执行命令mvn package

    系统报错说没有找到依赖。所有依赖的JAR包都应该正确安装到当前的Maven仓库中才能够使用,换句话说,Maven项目都是到当前仓库中去寻找它所依赖的JAR包的。

    ⑥需要重新构建Hello第一个项目并安装到数据仓库,在命令行Hello根目录下执行mvn clean install

    ⑦重新在HelloFriend目录下执行命令mvn package

    ⑧执行其他常用命令:site

03_Maven核心概念_02

1、仓库配置

     增加一个仓库,在项目Pom.xml中添加如下:   

  &l

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值