1什么是maven?

maven 是java的开源项目,安装运行需要jdk 运行环境

作用

1.java工程的jar包依赖管理

2.Java项目的构建 包括 编译 测试 打包 部署

2.maven安装

测试

maven 中央仓库的jar maven中央仓库搭建_maven 中央仓库的jar

3.Maven配置

主要修改C:\soft\apache-maven-3.6.0\conf\settings.xml

maven 本地仓库默认地址,如果c盘控件充裕不需要配置

C:\Users\wgz.m2\repository

<localRepository>D://path/to/local/repo</localRepository>

4.仓库的分类

本地仓库

中央仓库

公共仓库

私服仓库

maven 中央仓库的jar maven中央仓库搭建_maven 中央仓库的jar_02

maven中央仓库官网

https://mvnrepository.com/

几乎所有的jar包最终的来源都是中央仓库

配置阿里云镜像

<!--setting.xml中添加如下配置-->
<mirrors>
	<mirror>
        <id>aliyun</id>  
        <!-- 中心仓库的 mirror(镜像) -->
        <mirrorOf>central</mirrorOf>    
        <name>Nexus aliyun</name>
        <!-- aliyun仓库地址 以后所有要指向中心仓库的请求,都会指向aliyun仓库-->
        <url>http://maven.aliyun.com/nexus/content/groups/public</url>  
    </mirror>
</mirrors>

5.idea创建工程

java工程

maven 中央仓库的jar maven中央仓库搭建_jar_03

打包方式

打包方式
    jar 将当前工程打包为jar mvn package
    war 将工程打包为 war tomcat-java web工程使用
    pom 父子工程使用 父工程 表为pom

javaee工程

maven 中央仓库的jar maven中央仓库搭建_jar_04

maven 中央仓库的jar maven中央仓库搭建_maven 中央仓库的jar_05

在pom中添加sevlet依赖

<dependency>
      <!-- jstl 支持 -->
      <groupId>javax.servlet</groupId>
      <artifactId>jstl</artifactId>
      <version>1.2</version>
    </dependency>


    <!-- 引入servelet -api 依赖-->
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>3.0.1</version>
      <!-- 编译时需要 运行时不需要  -->
      <scope>provided</scope>
    </dependency>

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

maven 中央仓库的jar maven中央仓库搭建_maven_06


配置tomcat

maven 中央仓库的jar maven中央仓库搭建_maven 中央仓库的jar_07

遇到jar 下载不下来???

maven 中央仓库的jar maven中央仓库搭建_maven_08

maven 中央仓库的jar maven中央仓库搭建_java_09

解决方式1

maven 中央仓库的jar maven中央仓库搭建_java_10

解决方式2

maven 中央仓库的jar maven中央仓库搭建_java_11

最后一定要重新刷新pom

5.jar依赖的生命周期

jar 的作用域

test:编译测试 需要,打包时不会将jar 打入

compile: 任何时候都需要

provided:编译时需要,运行时不需要

runtime:编译时不需要,运行时,测试时,打包时需要

<dependencies>

    <!--test jar-->
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <!-- 标记当前jar 只存在测试的阶段-->
      <scope>test</scope>
    </dependency>




    <dependency>
      <!-- jstl 支持 -->
      <groupId>javax.servlet</groupId>
      <artifactId>jstl</artifactId>
      <version>1.2</version>
    </dependency>


    <!-- 引入servelet -api 依赖-->
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>3.0.1</version>
      <!-- 编译时需要,运行时不需要  -->
      <scope>provided</scope>
    </dependency>

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


    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>8.0.17</version>
      <!--运行时才需要的jar 打包时也打进来-->
      <scope>runtime</scope>
    </dependency>


  </dependencies>

6.maven生命周期

三个:

clean 当需要重建工程时 clean 删除target

build 构建阶段

compile 编译

test junit 单元测试

package 将工程达成jar war

install 将打好的jar 安装到本地仓库

deploy 将打成jar 部署到 远程仓库

site 部署站点

7.私服

作用:

1.提高jar下载速度

2.解决公司因代码安全引起的不能直接访问外网仓库的问题

3.放置公司内部公共jar ,同事之间通过私服引用对方的jar

maven 中央仓库的jar maven中央仓库搭建_maven 中央仓库的jar_12