啥是Maven

Maven是一个项目管理工具,简化了Java项目的构建、依赖管理和文档生成。通过配置pom.xml,可以从远程仓库获取依赖,避免手动下载jar。本文介绍了安装、配置、使用Maven的步骤,包括设置本地repository、搜索依赖、编译工程等。
摘要由CSDN通过智能技术生成

开发环境:

Java JDK 1.8.0

Maven 3.6.3

很多人会有这样的疑问。面对众多工程都会用到maven,它究竟是干什么的?怎么用?为什么到我这里一编译总是报错呢?

简单的来说Maven是一个项目管理工具,它包含了一个项目对象模型(POM:Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),用来运行在生命周期阶段中插件目标的逻辑。

那么我们应该从何处入手呢?假设我们实现如下类,需要引用一个mysql的jdbc的jar,应该如何操作?

import com.mysql.jdbc.Connection;
import java.sql.DriverManager;

public class ConnectionTest {
    public static void main(String[] args) throws Exception {
        Class.forName("com.mysql.jdbc.Driver");
        Connection conn = (Connection) DriverManager.getConnection("jdbc:mysql://localhost:3306/university", "USER", "PASS");

    }
}

一般做法,去mysql官网搜索 mysql-connector.jar, 然后下载,引用到工程里。这样就可以 import com.mysql.jdbc.Connection;

如果这样做,就没maven什么事儿了。

大家可以发现这样做缺点很多,首先你得找到jar,然后下载,还得引到工程里。然而这一切,都可以交给maven.

1. 安装maven环境。

maven安装的文章很多,就不细说了。装好后记得添加环境变量。

另外最初接触maven建议用命令行方式编译。不要用IDE自带的maven功能。

否则以后你只是记住了点了一下绿色按钮,后面发生了什么,调了哪些命令还是不清楚。

2.配置本地repository

安装好maven后会在相应conf文件夹下找到配置文件,如

D:\Program Files\apache-maven-3.6.3\conf\settings.xml

其中 <localRepository>/path/to/local/repo</localRepository>

默认这个地方是注掉的,说明你的repository是默认路径${user.home}/.m2/repository,建议修改到别的盘符。

因为如果repository很大会占用系统盘空间。

 

3.去远程仓库找到你想要的jar

进入maven官网,https://search.maven.org/  搜索你想要的jar,如: mysql connector。

点击版本号,你就会在右边得到如下xml

<dependency>
  <groupId>com.github.bj-tydic</groupId>
  <artifactId>async-mysql-connector</artifactId>
  <version>1.7</version>
</dependency>

其中 groupId是组织名称

artifactId是定义项目模块

version是项目版本

 

在工程根目录新建pom.xml, 在相应位置配置好刚才的dependency,整体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>org.example</groupId>
    <artifactId>mst3</artifactId>
    <version>1.0-SNAPSHOT</version>
    <dependencies>
        <dependency>
            <groupId>com.github.bj-tydic</groupId>
            <artifactId>async-mysql-connector</artifactId>
            <version>1.7</version>
        </dependency>
    </dependencies>
</project>

4.用maven编译工程

然后激动人心的时刻到了。如果你maven环境配置正确,cd到工程根目录,输入命令:

mvn clean compile -U

注:

clean 先清空target目录

compile 编译工程

-U 是强制检查版本的意思,-U并不是每次都会拉最新的,只有在时间戳落后于私库上的jar的时候才会下载最新。

就可以完成工程的编译。比如如下日志:

Downloading from central: https://repo.maven.apache.org/maven2/mysql/mysql-connector-java/5.1.42/mysql-connector-java-5.1.42.pom

它会指到默认的maven仓库下载对应版本的jar,并引到工程里。

编译完成后,你就会在你的工程下面看到这个jar包了,当然引用jar包就不会报错了。

5.知识点扩展

  • 版本库:我们已知类型有三种仓库。

本地仓库,就是你本地 .m2\repository

远程仓库,很多公司都会在内网部署自己的仓库,或者公网上的镜像。

方法是在pom.xml 中dependencies同级别加入如下配置

  <repositories>  
    <repository>  
      <id>maven-net-cn</id>  
      <name>Maven China Mirror</name>  
      <url>http://maven.net.cn/content/groups/public/</url>  
      <releases>  
        <enabled>true</enabled>  
      </releases>  
      <snapshots>  
        <enabled>false</enabled>  
      </snapshots>  
    </repository>  
  </repositories>  

镜像,寻找更快的公网地址

在maven配置文件settings.xml中加入

一般国内来讲,连阿里云的镜像还是很快的。配置完后他就会覆盖原来的默认地址 https://repo.maven.apache.org

	<mirror>
		<id>alimaven</id>
		<mirrorOf>central</mirrorOf>
		<name>aliyun maven</name>
		<url>https://maven.aliyun.com/repository/central</url>
	</mirror>
  • Maven命令

除了上文用到的 mvn compile, 还有

mvn clean 清空target目录

mvn package 打包

mvn test 运行单元测试

其实这里大多讲的事依赖管理(Dependency Management System),也是项目用的最多的部分。 理解了依赖管理,maven你已经能理解一半了。

祝大家好运!

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值