maven入门学习

以你之姓@ 2024-03-22 13:10 226阅读 0赞

简介

maven是基于ant升级的,apache的自动化构建工具、项目管理工具

Maven – Welcome to Apache Maven

maven使用pom.xml进行配置

maven项目可以更方便的实现导jar包、拆分项目

idea默认集成了maven

8fae8fe8eb9f4703b26e55e002bf2825.png

#

下载安装

下载maven,在官网(Maven – Welcome to Apache Maven)

c855ad04d1074c848df48f44ef10405d.png

binary可以直接使用,source是带源码的

解压后,bin目录下方的是执行文件/命令

idea中可以直接集成maven(不用敲命令了)

f5a5b4c17ca34d4881ca9ae04e977541.png

本地仓库、远程仓库

远程仓库

默认的远程仓库是apache提供的中央仓库https://mvnrepository.com/

本地仓库路径配置

6763a636a3424589808e7b06a825d069.png

镜像仓库配置

ad137ebbaa8747dbafc5b01f79ced82a.png

仓库优先级:

本地 > 配置文件中指定的仓库 > 镜像仓库 > 中央仓库

指定编译运行的jdk

当idea中有多个jdk的时候,需要指定编译运行的jdk

44eb64da125149618d23b30531bbf578.png

maven项目类型

用maven构建项目,会有三种类型

pom

pom工程是逻辑工程,用在父级工程或者聚合工程中,用来做jar包的版本控制

  1. <packaging>pom</packaging>

jar

打成jar包 java project

war

打成war包,发布在服务器上

项目坐标

GroupId:类似包名,防止重名,一般填写的是域名反转(eg:com.company)

ArtifactId:一般使用项目名

Version:版本,SNAPSHOT一般是非正式版本,上线后会去掉

5e662b20d5b84154a47d55bb0ba5b6d4.png

maven项目标准目录结构

db3b6a74f14a43f7911be8860772173e.png

通过dependencies添加依赖

f80130d0b3194588897c823d99a81c72.png

maven项目关系依赖具有传递性

项目1依赖项目2,项目2依赖项目3,那么项目1中可以世界使用项目3

原则

最短路径有限原则

A->B->C->D(2.0)

A->E->D(1.0)

那么D(1.0)会被使用,因为A通过E到D的路径更短

最先声明原则

依赖路径长度一样时,

A->B->D(2.0)

A->E->D(1.0)

A中先声明哪个,哪个版本最先使用

A中先声明B,那么使用D(2.0)

A中先声明E,那么使用D(1.0)

依赖范围scope

默认是编译和执行都有效compile

  1. <scope>compile</scope>

provided

项目打包后不使用该依赖

编译运行时使用该依赖,然后项目打包后,依赖可能跟容器中的依赖冲突,此时用provided,直接使用容器的依赖(eg:servlet-api)

runtime

编译时不需要生效,运行时生效(eg:jdbc)

system

与provided类似,不过需要指定一个本地系统路径的jar

  1. <dependency>
  2. <groupId>org.springframework.boot</groupId>
  3. <artifactId>spring-boot-starter-web</artifactId>
  4. <scope>system</scope>
  5. <systemPath>D:/mavenResp</systemPath>
  6. </dependency>

test

编译测试、运行测试是需要,生成正式运行时不需要(eg:Junit)

import

值适用于pom文件中的dependencyManagement部分,表明子项目必须要使用dependencyManagement部分的依赖版本

排除依赖,不需要写version

  1. <dependency>
  2. <groupId>com.alibaba.cloud</groupId>
  3. <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
  4. <exclusions>
  5. <exclusion>
  6. <groupId>org.springframework.cloud</groupId>
  7. <artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
  8. </exclusion>
  9. </exclusions>
  10. </dependency>

父子工程

在子工程中添加

  1. <parent>
  2. <groupId>xxx</groupId>
  3. <artifactId>xxx</artifactId>
  4. <version>xxx</version>
  5. <relativePath>./pom.xml</relativePath>
  6. </parent>

maven插件

配置maven的编译插件

将jdk的版本改为1.7

f93e29d68cff46388a84ac9fa8d50fbc.png

配置文件插件

默认情况下,只有resources目录下的配置文件会被打包

如果想要把其他目录下的配置文件也打包

3d1c79975d124aa08386f3197132ed7a.png

tomcat插件

创建web(war)项目

1cf8fe52af5946148bf769ac081b11e1.png

配置Tomcat插件

ae8f1eac41f745629c4ae7c8b437917b.png

使用tomcat插件发布部署并执行war工程的时候,需要使用启动命令:tomcat7:run

2e245fd6d1e6459baa6cf4edd54dc751.png

这样就可以启动项目了

maven命令

install

编译、打包,安装到本地仓库,也会有target目录

2d2b0589300343fe89e6ddeb8974c391.png

compile

只编译,相当于javac

package

编译、打包(不会把打包后的jar放到本地仓库中)

clean

清除

发表评论

表情:
评论列表 (有 0 条评论,226人围观)

还没有评论,来说两句吧...

相关阅读