Maven

Maven

Maven的下载地址:https://archive.apache.org/dist/maven/binaries/apache-maven-3.2.2-bin.zip

安装方法:

  1. 需要配置M2_HOME 环境变量指定为Maven的bin目录,在PATH变量中
  2. 需要配置JAVA_HOME 环境变量指定为JAVA的bin目录,在PATH变量中
  3. 需要配置CLASSPATH 环境变量为.;%JAVA_HOME%\lib\dt.jar.tools.jar

Maven的联网问题

  • 通过Maven去下载的话,如果在网络较慢的情况下特别慢
  • 更改Aliyun的镜像源

Maven默认的配置目录是~/.m2/repository,需要修改存储位置(localRepository)和镜像(mirror);默认配置文件在:Maven/conf/setting.xml,更改如下

<localRepository>D:\编程根目录\Java\JavaForHadoop\RepMaven</localRepository>

更改镜像源

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

IDEA 配置

  • 进入在setting -> Build, Execution, Deployment -> Build Tools -> Maven
  • 修改Use Setting File 为Maven Settings目录

Maven的生命周期

  • Clean:清理,将之前编译的结果清理掉
  • Compile:编译,将主程序的.java编译成.class文件
  • Test:编译测试程序并运行生成报告
  • Package:打包,将程序打成jar包或者是war包
  • Install:安装将打成jar的包安装的Maven的本地仓库

指定编译版本

<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.comilerVersion>1.8</maven.compiler.comilerVersion>
  </properties>
</profile>

Maven的核心概念

graph TD; Maven-->POM Maven-->约定目录结构 Maven-->坐标 Maven-->依赖 Maven-->仓库 Maven-->生命周期 Maven-->插件和目标 Maven-->继承 Maven-->聚合

POM:Project Object Model(项目对象模型)。将Java工程对象封装成对象

坐标(GAV):使用如下的三个向量在Maven的仓库中唯一的确定的Maven的工程

(1)GroupId:公司或组织的域名倒序+当前项目名称

(2)ArtifactId:当前项目的名称

(3)Version:当前的模块的版本

在项目的pom.xml中存储,存储方式为GroupId > ArtifactId > Version > ArtifactId+Version.jar

依赖:<scope></scope>

  • Compile:默认,可以在main和Test同时使用依赖
  • Test:尽可以在Test下使用依赖
  • Provided:服务器可提供的Jar包范围

依赖的传递性,A->B->C

项目包 Scope 是否会传递
A Compile
B Test
C Provided

Jar包冲突,两点原则

  1. 路径最短者优先
  2. 先引用者优先

排除传递依赖

<dependency>
	<exclusions>
    <exclusion>
    <groupId></groupId>
    <artifactId></artifactId>
    </exclusion>
  </exclusions>
</dependency>

一次定义多次使用类似于变量的定义

<properties>
        <mysql-version>3.1.2</mysql-version>
</properties>
使用
<version>${mysql-version}</version>

仓库

  • 本地仓库:为当前本机电脑上提供Maven的服务
  • 远程仓库:私服(架设到当前局域网环境下),为当前局域网的范围内所有Maven工程服务;中央仓库:架设到Internet上,为全世界的Maven工程服务

插件和目标

  • Maven的核心程序都是交给插件去做的
  • 每一个插件都可以实现多个功能,
  • 一个插件可以实现的功能称作为一个插件的目标

打包

  • 父工程打的包是pom包
  • web工程大的是war包
  • Java工程打的包是Jar包
posted @ 2022-12-30 14:19  TnT…  阅读(55)  评论(0)    收藏  举报