Java Maven

一,Maven

1.1 概念

Maven 是一个基于项目对象模型(pom.xml)概念的纯Java开发的项目管理工具

1.2 作用

  1. 管理jar包:项目越大,需要的jar包就越多,可以通过maven对这些jar包统一管理

  2. 解决了jar包使用的繁琐:

    1. 普通项目使用jar需要经历:寻找jar包、下载jar包、导入jar包

    2. maven项目使用jar包只需要在pom.xml中使用jar包的坐标(GAV)引入即可

  3. 节省空间: 使用maven通过坐标引入依赖,不需要在每一个项目中都存放jar包,只需要根据GAV能定位到jar包在仓库中的位置即可

  4. 统一了jar包的版本:如果每个人的jar包版本不同,或者jar包的版本升级了,那么只需要在pom.xml中修改版本号就可以统一版本

1.3 下载、安装、环境配置

下载:Maven – Download Apache Maven

安装:解压即可

maven的目录

        1.bin:包含maven的执行文件

        2.boot:包含plexus-classworlds-2.5.2.jar包,这个jar包的作用是maven可以通过它来加载自己的类库

        3.lib:包含maven运行时所需要的依赖

        4.conf:包含settings.xml配置文件

配置环境:

 

测试环境:在cmd中输入 mvn -v

 

1.4 配置maven

1.4.1 配置本地仓库

必须手动配置maven在当前计算机中的本地仓库

在conf目录下的settings.xml中,配置如下内容:

<localRepository>C:\mine\Java\maven\maven_repository</localRepository>
标签体内写本地仓库的的根目录

1.4.2 配置maven所依赖的jdk

在conf目录下的settings.xml中,配置如下内容:

<profiles>
 <profile>
     <id>myjdk1.8</id>
     <activation>
         <jdk>1.8</jdk>
     </activation>
 </profile>
</profiles>
<activeProfiles>
 <activeProfile>myjdk1.8</activeProfile>
</activeProfiles>

1.4.3 配置公共仓库

中央仓库在国外,下载依赖的速度较慢,所以都要配置一个国内的公共仓库代替中央库来下载所需依赖

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

1.5 maven仓库

本地仓库

在settings.xml文件中使用localRepository标签进行配置,所有使用过的依赖都会自动下载到本地仓库中,可以反复使用

远程仓库

  1. 中央仓库,由maven提供,不需要配置,maven中已经默认配置了中央库的地址

    中央库的地址:Central Repository:

    所有jar包的gav坐标:https://mvnrepository.com/

  2. 公共仓库

    中央仓库在国外,下载依赖的速度较慢,所以都要配置一个国内的公共仓库代替中央库来下载所需依赖

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

注:当在pom.xml文件中引入了某个jar包的依赖时,会先在本地仓库中查找是否存在,如果没有则去公共仓库(配置了的话),如果公共仓库中有,则将公共仓库中的依赖下载到本地仓库,如果公共仓库中也没有则去中央库下载到本地仓库。

1.6 在idea中配置maven

 

 

1.7 idea中创建maven工程 

 

 

同步依赖:

  

 maven项目的结构:

        1.src/main/java:编写java代码

        2.src/main/resources:存放配置文件

        3.src/test/java:测试代码

        4.pom.xml:project object model,它是maven项目的核心文件,定义了依赖的声明、定义了项目的结构

1.8 依赖的生命周期

  1. compile:默认值,适用于测试、编译、运行、打包阶段

  2. provided:适用于测试、编译阶段

  3. runtime:适用于测试、运行阶段

  4. test:适用于测试、编译阶段

  5. system:表示当前依赖只在本地库中查找

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.32</version>
    <scope>runtime</scope>
</dependency>

1.9 Maven的指令 

  1. clean:删除target目录

  2. compile:编译当前项目中的类,生成target目录

  3. package:将当前项目打包成一个jar/war包,存储在当前项目的target目录中

  4. install:将当前项目打包成一个jar/war包,存储在本地库中

1.10 聚合工程

一个项目可以有三种不同的打包方式:

  1. jar:JavaSE工程

  2. war:web工程

  3. pom:聚合工程,将其他项目作为当前项目中的一个模块

<groupId>com.qf</groupId>
<artifactId>maven</artifactId>
<version>1.0-SNAPSHOT</version>
<!-- 聚合工程 -->
<packaging>pom</packaging>

创建聚合工程

注:要使用其他Module中类,需要在当前工程的pom.xml文件中,引入它的依赖

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值