Java之Maven【IDEA版】入门到精通(一篇文章精通系列)

一、Maven简介

1、传统项目管理状态分析

  • jar包不统一,jar包不兼容

  • 工程升级维护过程操作繁琐

在这里插入图片描述

2、Maven是什么

  • Maven的本质是一个项目管理工具,将项目开发和管理过程抽象成一个项目对象模型(POM)

  • POM (Project Object Model):项目对象模型
    在这里插入图片描述

3、Maven的作用

  • 项目构建:提供标准的、跨平台的自动化项目构建方式
  • 依赖管理:方便快捷的管理项目依赖的资源jar包),避免资源间的版本冲突问题
  • 统一开发结构:提供标准的、统一的项目结构
    在这里插入图片描述

二、下载与安装

1、Maven下载

官网: http://maven.apache.org/
下载地址: http://maven.apache.org/download.cgi
在这里插入图片描述

2、Maven安装

  • Maven属于绿色版软件,解压即安装
    在这里插入图片描述
    在这里插入图片描述
  • 在Maven的解压文件旁边创建repository空文件
    在这里插入图片描述
  • Maven环境变量配置依赖Java,需要配置JAVA_HOME

设置MAVEN自身的运行环境,需要配置MAVEN_HOME测试环境配置结果

在高级系统设置里面
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在命令行当中输入以下命令测试是否安装成功

mvn -version

证明安装成功
在这里插入图片描述

三、Maven基础概念

1、仓库

仓库:用于存储资源,包含各种jar包
在这里插入图片描述
仓库

  • 仓库:用于存储资源,包含各种ar包
  • 仓库分类:
    • 本地仓库:自己电脑上存储资源的仓库,连接远程仓库获取资源
    • 远程仓库:非本机电脑上的仓库,为本地仓库提供资源
      • 中央仓库:Maven团队维护,存储所有资源的仓库
      • 私服:部门/公司范围内存储资源的仓库,从中央仓库获取资源
  • 私服的作用:
    • 保存具有版权的资源,包含购买或自主研发的jar
      • 中央仓库中的jar都是开源的,不能存储具有版权的资源
    • 一定范围内共享资源,仅对内部开放,不对外共享

2、坐标

  • 什么是坐标?

    Maven中的坐标用于描述仓库中资源的位置https://repo1.maven.org/maven2/

  • Maven坐标主要组成

    groupld:定义当前Maven项目隶属组织名称(通常是域名反写,例如: org.mybatis)

    artifactld:定义当前Maven项目名称(通常是模块名称,例如CRM、SMS)

    version:定义当前项目版本号

    packaging:定义该项目的打包方式

  • Maven坐标的作用
    使用唯一标识,唯一性定位资源位置,通过该标识可以将资源的识别与下载工作交由机器完成

3、本地仓库配置

  • Maven启动后,会自动保存下载的资源到本地仓库
    • 默认位置
<localRepository>${user.home }/.m2/repository</localRepository>

当前目录位置为登录用户名所在目录下的.m2文件夹中

  • 自定义位置
    在这里插入图片描述
    在这里插入图片描述
 <localRepository>D:/Maven/repository</localRepository>

当前目录位置为D:/Maven/repository文件夹中

4、 Maven 阿里云(Aliyun)仓库

Maven 仓库默认在国外, 国内使用难免很慢,我们可以更换为阿里云的仓库。

修改 maven 根目录下的 conf 文件夹中的 settings.xml 文件,在 mirrors 节点上,添加内容如下:
在这里插入图片描述

<mirrors>
    <mirror>
     	 <!-- mirror -->
		<id>nexus-aliyun</id>
		<!-- -->
		<mirrorOf>central</mirrorOf>
		<!-- -->
		<name>Nexus aliyun</name>
		<!-- URL -->
		<url>http://maven.aliyun.com/nexus/content/groups/public</url>
    </mirror>
</mirrors>

5、全局setting与用户setting区别

●全局settting定义了当前计算器中Maven的

●公共配置用户settting定义了当前用户的配置

三、第一个Maven项目(纯手工制作)

1、创建目录结构

在刚刚Maven的安装目录旁边创建Test目录
在这里插入图片描述
进入Test,创建project
在这里插入图片描述
进入project,创建java-project
在这里插入图片描述
进入java-project,创建src
在这里插入图片描述
其他依次类似创建如下目录结构

在这里插入图片描述

2、 在src同层目录下创建pom.xml

在这里插入图片描述
在pom.xml当中写入如下内容

<?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/maven-v4_0_0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>com.itzheng</groupId>
	<artifactId>java-project</artifactId>
	<version>1.0</version>
	<packaging>jar</packaging>
	<dependencies>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.12</version>
		</dependency>
	</dependencies>
</project>

3、 Maven项目构建命令

(1)手工构建

Maven构建命令使用mvn开头,后面添加功能参数,可以一次执行多个命令,使用空格分隔

在这里插入图片描述
在D:\Maven\Test\project\java-project\src\main\java\com\itzheng当中创建一个测试类
在这里插入图片描述

写入如下内容


public class Hello 
{
    public static void main( String[] args )
    {
        System.out.println( "Hello World!" );
    }
}

在D:\Maven\Test\project\java-project打开cmd

mvn install

在这里插入图片描述

指定下载相关依赖到repository当中
在这里插入图片描述
成功
在这里插入图片描述
在repository我们发现一些自动下载好的jar
在这里插入图片描述
同时在项目目录下自动创建target文件夹
在这里插入图片描述
在里面我们发现打包好的jar,在此处打开cmd,
在这里插入图片描述
框当中输入cmd回车
在这里插入图片描述
进入classes当中
输入以下内容:java -cp . com.itzheng.Htllo
在这里插入图片描述

(2)插件创建工程
  • 创建工程语法
mvn archetype:generate
	-DgroupId={project-packaging} 
	-DartifactId={project-name} 
	-DarchetypeArtifactId=maven-archetype-quickstart
	-DinteractiveMode=false
  • 创建java工程
mvn archetype:generate 
	-DgroupId=com.itzheng 
	-DartifactId=java-project2  
	-DarchetypeArtifactId=maven-archetype-quickstart  
	-Dversion=0.0.1-snapshot  
	-DinteractiveMode=false 

在刚刚的Test的project目录下输入

在这里插入图片描述

在这里插入图片描述
生成Java项目
在这里插入图片描述
自动创建好了对应的文件
在这里插入图片描述

  • 创建web工程
mvn archetype:generate 
	-DgroupId=com.itheima 
	-DartifactId=web-project 
	-DarchetypeArtifactId=maven-archetype-webapp 
	-Dversion=0.0.1-snapshot 
	-DinteractiveMode=false 

在这里插入图片描述
创建成功
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

左边为Java项目右边为web项目
在这里插入图片描述

四、第一个Maven项目(IDEA生成)

1、IDEA配置Maven

在这里插入图片描述
选择Maven的安装地址
在这里插入图片描述
在这里插入图片描述
选择Maven的配置文件
在这里插入图片描述
选择本地仓库位置
在这里插入图片描述

2、手工创建Java项目

(1)工程搭建

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

进入工程后右下角点击

在这里插入图片描述

(2)在pom.xml当中引入测试junit的依赖

在这里插入图片描述

<?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.itzheng.test</groupId>
    <artifactId>Java-maven-demo</artifactId>
    <version>1.0-SNAPSHOT</version>
    <dependencies>

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

</project>
(3)创建测试类

在这里插入图片描述
在这里插入图片描述

package com.itzheng.test;

import org.junit.Test;

public class Demo01 {

    @Test
    public void test(){
        System.out.println("Test");
    }

}

运行测试
在这里插入图片描述
运行结果
在这里插入图片描述

3、手工创建Web项目

(1)Web项目搭建

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
以下内容不需要动
在这里插入图片描述
在这里插入图片描述

(2)添加依赖
  • 默认引入的是jetty我也可以同时加上Tomcat
    在这里插入图片描述
	  <plugin>
        <groupId>org.apache.tomcat.maven</groupId>
        <artifactId>tomcat7-maven-plugin</artifactId>
        <version>2.1</version>
        <configuration>
          <port>8090</port>
          <path>/</path>
        </configuration>
      </plugin>
  • 添加Servlet依赖
    在这里插入图片描述
<dependencies>
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>3.0.1</version>
      <scope>provided</scope>
    </dependency>
  </dependencies>

(3)补齐缺少的目录

查看左边我们发现缺少一些目录
在这里插入图片描述
创建Java目录
在这里插入图片描述
在这里插入图片描述
创建其他目录结构
在这里插入图片描述

(4)创建对应的类
  • UserDao
    在这里插入图片描述
    在这里插入图片描述
package com.itzheng.dao;

public class UserDao {

    public void testUserDao(){
        System.out.println("这里是Dao");
    }

}

  • UserService
    在这里插入图片描述
    在这里插入图片描述
package com.itzheng.service;

public class UserService {
    public void testUserService(){
   		System.out.println("这里是Service");
    	UserDao userDao = new UserDao();
        userDao.testUserDao();
    }
}

  • UserServlet
    在这里插入图片描述
    在这里插入图片描述
package com.itzheng.web;

import com.itzheng.service.UserService;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet("/User")
public class UserServlet extends HttpServlet {

    // 处理 GET 方法请求的方法
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        UserService userService = new UserService();
        userService.testUserService();

    }

    // 处理 POST 方法请求的方法
    public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request, response);
    }

}

(5)测试运行

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
如果运行报错删除web.xml当中一些没有用 的留下这些即可

在这里插入图片描述
访问该地址
在这里插入图片描述
http://localhost:8090/User

在这里插入图片描述
控制台输出结果
在这里插入图片描述

  • 14
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员猫爪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值