-
Maven是一个自动化构建工具
-
能够将支持Maven项目的依赖包从远程仓库拉取到本地仓库,并进行依赖管理
-
项目中通过pom.xml来描述项目,对项目依赖进行管理与配置
-
给项目提供编译、打包、安装、部署支持
-
IDE提供了比较紧密的支持,如IDEA
-
在Maven项目中,会优先使用本地仓库依赖包,如果本地仓库有相应依赖包,不会去远程仓库拉取最新的依赖包
-
国内有很多可供直接使用的Maven仓库,提供一些常用的开源依赖包的拉取,如阿里、网易等
-
仓库搭建开源工具常用的有Nexus,一般中大型企业都会构建自己的Maven仓库
安装
-
IDEA安装后提供了默认的Maven安装,可直接使用,也可以单独安装自己需要的版本
-
下载一个最新版本的Maven到本地(附件提供了一个文件版本的Maven)
-
在IDEA中将项目的Maven根目录指向本地安装位置,并更改配置文件settings也指向本地
-
同时,将Maven仓库规划到指定地址,避服务器托管网免重复的包每次都重新下载
-
另外,在有些情况下,由于网络等原因,默认的Maven配置可能无法从远程仓库拉取依赖包,此时需修改Maven安装目录下conf/settings中的mirror内容
项目Maven配置
-
在Spring Boot项目的pom.xml中,有一些很重要的配置,来支持快速构建一个Spring Boot项目
-
熟悉并掌握这些配置是后端接口开发的重要基础
-
这个配置的内容非常丰富,掌握常用的,需要时查询相关用法即可
pom.xml常用配置
-
group id:组织名,如com.example.demo
-
artifact id:项目唯一标识名,如spring-boot-demo
-
version:版本,如2.5.2,分别为主版本、次版本、修订版
-
packaging:打包方式,常用的是jar或war,分别表示自运行和web容器运行
-
scope:依赖库与项目的关系,默认为compile,分别表示
-
compile:编译和打包时需要此类库,默认
-
test:测试时需要此类库
-
provided:只在编译阶段需要,打包时不需要此类库
-
runtime:编译和打包时都不需要,只在运行时需要此类库
-
-
modelVersion:maven版本
-
build:可选,表示构建时需要的插件
【演示】
-
熟悉Maven配置,见附件项目springboot-demo中的pom.xml
构建Maven发布包
-
Maven提供了一系列的指令完成一个项目的编译到打包
-
在IDEA工具中,右侧点击Maven面板,以可视化的方式使用这些指令
-
展开的Lifecyle->package中右键构建,会在项目的target目录下构建出可执行的.jar包(如果pom.xml配置的是war,则为war包)
查找和使用第三方的依赖包
-
工作中,经常会使用很多知名的第三方依赖包,如日志的、Redis集成的、数据访问集成的等
-
可以直接使用第三方包官网推荐方式,也可以去相应的集中式网站获取,通常有
-
Maven官网:https://search.maven.org/
-
另外一个网站:https://mvnrepository.com/
-
4.0.0
org.springframework.boot
spring-boot-starter-parent
2.7.14
com.example.demo
springboot-demo
0.0.1-SNAPSHOT
jar
springboot-demo
Demo project for Spring Boot
1.8
org.springframework.boot
spring-boot-starter
org.springframework.boot
spring-boot-starter-test
test
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-devtools
runtime
com.alibaba.fastjson2
fastjson2
2.0.26
org.springframework.boot
spring-boot-maven-plugin
true
另外,现在很多项目也使用gradle,配置和打包方式类似。
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net
相关推荐: Alpha-Beta剪枝的原理的深入理解(无图预警)
转载请注明 原文链接 :https://www.cnblogs.com/Multya/p/17929261.html 考虑一个树: 一棵树上只有叶子节点有值,有确定的根节点的位置 根据层数来划分叶子节点和根节点之间的链接节点 偶数层上的值取子节点的最大值,奇数…