SpringBoot有两种依赖管理工具:Maven和gradle,它们获取依赖的方式是相似的,都是从中央仓库获取依赖,然后拉取到本地存储(中央仓库在国外,所以有时候需要配置一个阿里云的仓库地址)
Maven管理依赖的方式是通过一个配置文件:pom.xml,通过该文件来管理项目中使用到的依赖,插件等;gradle管理依赖的方式是通过一个build.gradle配置文件来完成的
Maven和gradle同样提供了很多的命令可以用来打包,发布,编译,测试等,编码之后直接执行这些命名就可以完成相应的操作了
Maven依赖结构说明
pom.xml文件结构
描述了项目包的依赖和项目构建时的配置,在默认的 pom.xml 包中分为四大块:
-
项目描述信息
<groupId>com.neo</groupId> //项目的包路径 <artifactId>hello</artifactId> //项目名称 <version>2.0.5.RELEASE</version> 项目版本号 <packaging>jar</packaging>//打包方式,一般有两个值:jar、war,表示使用 Maven 打包时构建成 Jar 包还是 War 包 <name>hello</name>//项目名称 <description>Demo project for Spring Boot</description>//项目描述 -
项目依赖配置
//parent标签内配置 Spring Boot 父级版本 spring-boot-starter-parent,Maven 支持项目的父子结构,引入父级后会默认继承父级的配置; <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.5.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> //dependencies标签内配置项目所需要的依赖包,Spring Boot 体系内的依赖组件不需要填写具体版本号,spring-boot-starter-parent 维护了体系内所有依赖包的版本信息 <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies> -
构建时需要的公共变量
//编码和jdk版本 <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> </properties> -
项目构建配置
//使用 Maven 构建 Spring Boot 项目必须依赖于 spring-boot-maven-plugin 组件用于打包等 <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build>
gradle项目结构说明
首先就是项目中gradle的一些文件说明:
build.gradle:配置依赖的位置gradle.bat:这两个是gradle环境的脚本,双击这个脚本可以自动完成构建settings.grdle:文件将包含必要的一些设置,例如,任务或项目之间的依懒关系等;gradle文件夹:gradle文件中存在着wrapper文件夹,在wrapper下存在以下两个文件(gradle-wrapper.jar,gradle-wrapper.properties)wrapper文件的作用:可以利用它进行安装项目默认的gradle,这里由于我是事先已经在电脑上安装了gradle,所以具体如何利用wrapper自动安装gradle,后面如果有需要再进行说明
Gradle Wrapper
对于所有的Gradle项目来说,使用Gradle Wrapper有以下好处:
- 不用安装
gradle也能运行gradle项目 - 所有人使用相同的
gradle版本
在build.gradle中加入以下配置:
task wrapper(type: Wrapper) {
gradleVersion = '3.0'
}
然后在命令行运行:
gradle wrapper
此时会生成以下三个文件(夹):gradlew、gradlew.bat和gradle目录,这里的gradlew和gradlew.bat其实只是脚本文件(前者用于Unix/Linux/Mac,后者用于Windows)
在使用gradle命令的地方替换为gradlew或gradlew.bat,他们将自动下载指定的gradle版本,然后用该版本进行项目构建。如上文所示,本文中我们配置gradle版本为3.0。
请注意,这三个文件(夹)都需要提交到代码库中。当项目其他人拿到代码之后,由于gradlew和gradlew.bat文件均在源代码中,他们本地即便没有gradle,依然可以通过以下命令进行项目构建:
./gradlew build
如果你的项目有持续集成(CI)服务器(你也应该有),那么你的CI机器也没有必要安装Gradle了。另外,此时所有人都是使用的相同版本的gradle,进而避免了由于版本不同所带来的问题。