MAVEN

1. MAVEN

IDEA 默认提供maven,也可以去官网下载
在这里插入图片描述

下面为maven目录在这里插入图片描述
bin:是一些可执行文件,可以用cmd命令来使用maven,
boot:maven启动需要的jar
conf:settings.xml maven核心配置文件,远程仓库镜像,jdk版本

新手一般用没有.m2文件夹 使用mvm help:system
在这里插入图片描述

2. 中央仓库与镜像仓库

maven 仓库是个简单的文件系统,maven可以帮我们导入jar包,仓库就有各种jar包

仓库中每个jar包都有坐标,项目中导入这个坐标,maven会在远程仓库下载到本地仓库中,以后再次使用就不需要下载(https://mvnrepository.com/)

坐标 <groupid,artifactid,version>为坐标

  • groupId 用于防止重名 ,用于域名反转
  • artifactId 项目名字
  • version SNAPSHOT 快照版本 ,只是写代码还没上线,上线就可以把SNAPSHOT去掉
    比如
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.7</version>

之前项目A依赖项目B,需要将项目B打成Jar包,然后由项目A引入,有了Maven 只要使用项目B的坐标就可以访问到项目B

本地仓库配置:
  <localRepository>E:\apache\maven\maven-repository</localRepository>
镜像仓库配置: id与name 可以变 一旦配置,默认的apache默认中心仓库就被取代了
<mirror>  
   <id>alimaven</id>  
   <mirrorOf>central</mirrorOf>  
   <name>aliyun maven</name>  
   <url>http://maven.aliyun.com/nexus/content/groups/public/</url>  
 </mirror>

仓库优先级:最近原则
本地——指定仓库查找——镜像仓库(如果你配置了比如aliyun)——默认中央仓库(apache)

jdk配置:

这里的id不能随便改,告诉maven使用jdk-1.8 ,activeByDefault开JDK的使用,properties 就来配置 编译器的信息

<profile>
  <id>jdk-1.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>
  </properties>
</profile>

3. maven工程类别

POM工程:用于父级工程或聚合工程,用来做jar包的版本控制
JAR工程:导出Jar包
WAR工程:导出war包

组成 项目坐标

在这里插入图片描述

src/java用于存代码 src/resource 用于存放配置 test用于放测试 target用于存放编译后文件,开始创建项目是不存在的
使用install 在项目工程目录下会生成jar包,并且会本地仓库也会有,且基于项目坐标存储
在这里插入图片描述

4. maven工程关系

4.1 依赖关系

A依赖B,就需要A导入B的Jar包,maven就是在pom.xml中添加dependency,之后就会在External Libraries中会出现该jar包信息
在这里插入图片描述
注意:项目A要用坐标来添加项目B依赖,项目B必须打成jar包,clean可以把之前生成jar清除,install用来生成

test1 依赖mybatis
test2 依赖 test1, test2不仅导入了test1的jar包,还导入的mybatis,依赖具有传递性
在这里插入图片描述
当然我也可以排除由test1传递的,mybatis依赖 使用 exclusions标签 排除

<dependency>
    <groupId>org.example</groupId>
    <artifactId>test</artifactId>
    <version>1.0-SNAPSHOT</version>
    <exclusions>
        <exclusion>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
        </exclusion>
    </exclusions>
 </dependency>

两个原则
最短路径 A->B->C ->( D 1.0) ,A->E->(D 2.0) 通过路径二导入依赖
最先声明 A->B->(C 1.0)) A->E->(C 2.0) 路径相同 安装pom里面声明的先顺序

scope

<dependency>
     <groupId>org.mybatis</groupId>
     <artifactId>mybatis</artifactId>
     <version>3.5.7</version>
     <scope>compile</scope>
 </dependency>

compile:编译运行生效
provided:比如编译测试的时候需要servlet,之后打成war包,放入tomcat,但是tomcat中也有包含servlet,所以使用provided就可以避免冲突了
runtime:运行时生效,比如jdbc,写代码用不到,只在运行时用
system:jar不在本地,镜像,中央仓库中,配合使用systempath指定位置
test:编译测试有效,比如Junit
import:只能在配合 < dependencyManagement > 使用, < dependencyManagement >一般为父工程使用,可以用父工程来 管理版本,但不引入
在这里插入图片描述

注意 父工程需要打成jar包
但是子工程也指定版本会变成子工程的版本,这是使用父工程中假如import就能防止子工程用其他版本

<dependency>
    <groupId>org.mybatis</groupId>
     <artifactId>mybatis</artifactId>
     <version>${mybatis}</version>
     <scope>import</scope>
</dependency>

4.2 继承

就是上面import的描述,使用parent来指定父工程

4.3 聚合

一个项目都很多小项目,小项目可以独立运行,也使用了继承关系
在这里插入图片描述

5. 常见插件

5.1 编译器插件

因为在settings.xml配置了全局jdk,使用插件来使用局部的1.7 jdk 不使用全局jdk

<plugins>
     <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-compiler-plugin</artifactId>
         <version>3.2</version>
         <configuration>
             <source>1.7</source>
             <target>1.7</target>
             <encoding>UTF-8</encoding>
         </configuration>
     </plugin>
 </plugins>

5.2 资源拷贝插件

配置文件在 src/main/resources 打包后会在 target/classes 下面,其他地方的配置文件不会被打包,如果需要打包,需要配置插件比如下面打包java文件夹下的配置文件

 <resources>
    <resource>
         <directory>src/main/resources</directory>
         <includes>
             <include>**/*.xml</include>
             <include>**/*.properties</include>
          </includes>
     </resource>
     <resource>
         <directory>src/main/resources</directory>
          <includes>
              <include>**/*.xml</include>
              <include>**/*.properties</include>
          </includes>
     </resource>
 </resources>

maven 常见命令

IDEA 可视化了
在这里插入图片描述
clean与install 前面说过了
install 编译打包jar,存放本地仓库 javac+jar
clean 删除编译信息,删除target
compile 只编译 javac
package 编译打包jar,不存放本地仓库

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

yilyil

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

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

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

打赏作者

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

抵扣说明:

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

余额充值