Maven的使用和介绍

1.Maven介绍

Maven是由Apache开发的一个工具。用来管理java项目(依赖(jar)管理, 项目构建, 分模块开发 ,管理项目的生命周期).

1.1Maven的作用
  • 依赖管理: maven对项目的第三方构件(jar包)进行统一管理。向工程中加入jar包不要手工从其它地方拷贝,通过maven定义jar包的坐标,自动从maven仓库中去下载到工程中。

  • 项目构建: maven提供一套对项目生命周期管理的标准,开发人员、和测试人员统一使用maven进行项目构建。项目生命周期管理:编译、测试、打包、部署、运行。

  • maven对工程分模块构建,提高开发效率。 (后面Maven高级会涉及)

2.Maven的仓库

仓库名称 作用
本地仓库 相当于缓存,工程第一次会从远程仓库(互联网)去下载jar 包,将jar包存在本地仓库(在程序员的电脑上)。第二次不需要从远程仓库去下载。先从本地仓库找,如果找不到才会去远程仓库找。
中央仓库 仓库中jar由专业团队(maven团队)统一维护。中央仓库的地址:https://repo1.maven.org/maven2/
远程仓库 在公司内部架设一台私服,其它公司架设一台仓库,对外公开。
2.1Maven的坐标

Maven的一个核心的作用就是管理项目的依赖,引入我们所需的各种jar包等。为了能自动化的解析任何一个Java构件,Maven必须将这些Jar包或者其他资源进行唯一标识,这是管理项目的依赖的基础

  • groupId:项目组织唯一的标识符,实际对应JAVA的包的结构 (一般写公司的组织名称 eg:com.xxx,com.alibaba)
  • artifactId: 项目的名称
  • version:定义项目的当前版本
<dependecies>
	<!--druid连接池-->
	<dependency>
  		<groupId>com.alibaba</groupId>
  		<artifactId>druid</artifactId>    
  		<version>1.0.9</version>  
	</dependency>
    <dependency>
    	<groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.6</version>
    </dependency>
</dependecies>

maven坐标搜索网站的地址: https://mvnrepository.com/

Maven的安装

  1. 下载Maven
  2. 安装Maven
  3. Maven目录介绍
  4. 配置环境变量
  5. 配置本地仓库
  6. 测试Maven是否安装成功
1.1 下载Maven

http://maven.apache.org/image

1.2 安装Maven

将Maven压缩包解压到没有中文的路径,即安装完毕
image

1.3 Maven目录介绍

image

1.3 配置环境变量

配置到系统变量:Path路径
变量名:MAVEN_HOME
变量值: %MAVEN_HOME%\bin;

1.5配置本地仓库

在maven的安装目录中conf/ settings.xml文件,在这里配置本地仓库

<settings xmlns="http://maven.apache.org/SETTINGS/1.2.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.2.0 http://maven.apache.org/xsd/settings-1.2.0.xsd">
  <!-- localRepository
   | The path to the local repository maven will use to store artifacts.
   |
   | Default: ${user.home}/.m2/repository
    <localRepository>D:\maven\apache-maven-3.8.1\repository</localRepository>
  -->
 <localRepository>D:\maven\apache-maven-3.8.1\repository</localRepository>>
1.6 测试Maven安装成功

打开cmd本地控制台,输入mvn -version 返回版本就是成功了

IDEA集成Maven

1.1配置Maven

image
配置参数(解决创建慢的问题) -DarchetypeCatalog=internal
image

1.3注意事项
  • 然后新创建project,一定不要使用原来的project,要求第一次使用maven创建项目的时候,一定要联网

  • 配置默认Maven环境 目的: 为了下次创建的时候 不需要再选择Maven了, 使用的就是这个默认环境的

  • 配置三块

    • maven_home
    • Maven的配置文件
    • 本地仓库的路径

Maven的常用命令

1. clean命令:

清除编译产生的target文件夹内容,可以配合相应命令一起使用,如
mvn clean package
mvn clean test

2. compile命令:

该命令可以对src/main/java目录的下的代码进行编译

3. test命令:

测试命令,先将src/main/java以及src/test/java中的类都进行编译,
然后再执行src/test/java/下所有junit的测试用例

4. package命令:

mvn package,打包项目
先编译,再执行测试,然后再打包(只会将main/java里面的代码打到包)

  • 如果是JavaSe的项目,打包成jar包
  • 如果是JavaWeb的项目,打包成war包
  • 打包后的项目会在target目录下找到
5. install命令:

mvn install,打包后将其安装在本地仓库
安装完毕后,在本地仓库中可以找到路径com\xxx\*.jar包的信息

6. 总结
  1. 命令作用

    • clean 用来清除编译后的文件(target文件夹里面的)【一般清缓存】
    • compile 编译只会编译main里面的内容
    • test 执行单元测试,先将main、test中的内容进行编译,然后执行test中的测试方法
    • package 打包 (javaSe-->jar, javaweb-->war),其实执行打包之前先执行test,然后对项目进行打包
    • install 把项目打包之后安装到本地仓库,其实执行install之前先执行了打包,然后对项目进行安装到本地仓库
  2. 生命周期
    当我们执行了install 也会执行compile test package

依赖范围

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>3.1.0</version>
    <scope>provided</scope>
</dependency>

image

1. (scope)作用范围
  • compile 编译、测试、打包运行部署 有效 【默认】
  • provided 编译, 测试 有效. 打包运行部署 无效
  • runtime 测试、打包运行部署 有效 编译无效
  • test 只是测试有效,只在单元测试类中用

Servlet,JSP 这类jar 需要加上provided , 因为部署到Tomcat里面. tomcat里面有, 如果没有加上provided , 可能会导致jar 冲突
单元测试的 建议加上test

Maven插件

1.插件介绍

集成jdk插件可以方便的修改项目的编译环境;集成tomcat插件后,无需安装tomcat服务器就可以运行tomcat进行项目的发布与测试。在pom.xml中通过plugin标签引入maven的功能插件。

2.JDK编译版本的插件
<!--jdk编译插件-->
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.2</version>
    <configuration>
        <source>1.8</source>
        <target>1.8</target>
        <encoding>utf-8</encoding>
    </configuration>
</plugin>

修改maven的配置

1、修改不使用骨架创建maven项目的默认编译版本

不使用骨架创建的maven项目的默认编译版本是1.5或者1.4版本

<profile>   
        <id>jdk1.8</id>
        <activation>   
            <activeByDefault>true</activeByDefault>
            <jdk>1.8</jdk>   
        </activation>
        <properties>
            <maven.compiler.source>1.8</maven.compiler.source>
            <maven.compiler.target>1.8</maven.compiler.target>
            <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
            <encoding>UTF-8</encoding>
        </properties>   
</profile>
将上述标签内容添加到settings文件的<profiles>标签中
2、彻底解决引入依赖的时候卡、报错

修改settings.xml文件,添加如下代码

<mirrors>
      <mirror>
          <id>alimaven</id>
          <name>aliyun maven</name>
          <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
          <mirrorOf>central</mirrorOf>
      </mirror>
      <mirror>
          <id>uk</id>
          <mirrorOf>central</mirrorOf>
          <name>Human Readable Name for this Mirror.</name>
          <url>http://uk.maven.org/maven2/</url>
      </mirror>

      <mirror>
          <id>CN</id>
          <name>OSChina Central</name>
          <url>http://maven.oschina.net/content/groups/public/</url>
          <mirrorOf>central</mirrorOf>
      </mirror>

      <mirror>
          <id>nexus</id>
          <name>internal nexus repository</name>
          <url>http://repo.maven.apache.org/maven2</url>
          <mirrorOf>central</mirrorOf>
      </mirror>
  </mirrors>
3.注意点

3.1 引入依赖之后,要检查依赖是否引入成功
image

3.2 如果dependencies中大块报红

  1. 先使用cleanLastUpdated文件,进行清理。清完之后刷新
  2. 检查自己的maven配置是否正确
    image

3.3 检查settings.xml中的本地仓库路径配置是否正确
image

3.4 将所有的依赖删除,接着一个一个依赖添加,添加一个就刷新一下,看是否添加成功,如果发现了哪个依赖报错,很有可能是因为你的本地仓库中没有该版本,所以我们可以尝试切换版本

posted @ 2021-08-07 19:30  秋吉  阅读(129)  评论(0编辑  收藏  举报