diff --git a/notes/pics/build-tools.png b/notes/pics/build-tools.png new file mode 100644 index 00000000..ca5c7ac6 Binary files /dev/null and b/notes/pics/build-tools.png differ diff --git a/notes/构建工具.md b/notes/构建工具.md index 99cb232e..63ab0e0b 100644 --- a/notes/构建工具.md +++ b/notes/构建工具.md @@ -10,17 +10,17 @@ ## 一、构建工具的作用 -构建一个项目通常包含了依赖管理、测试、编译、打包、发布等流程,构建工具可以自动化进行这些操作,从而为我们减少这些繁琐的工作。 +构建一个项目通常包含了依赖管理、测试、编译、打包、发布等流程,构建工具可以自动化进行这些操作,从而减少这些繁琐的工作。 -其中构建工具提供的依赖管理能够可以自动处理依赖关系。例如一个项目需要用到依赖 A,A 又依赖于 B,那么构建工具就能帮我们导入 B,而不需要我们手动去寻找并导入。 +其中构建工具提供的依赖管理可以自动处理依赖关系。例如一个项目需要用到依赖 A,A 又依赖于 B,那么构建工具就能自动导入 B,而不需要手动去寻找并导入。 -在 Java 项目中,打包流程通常是将项目打包成 Jar 包。在没有构建工具的情况下,我们需要使用命令行工具或者 IDE 手动打包。而发布流程通常是将 Jar 包上传到服务器上。 +在 Java 项目中,打包流程通常是将项目打包成 Jar 包。在没有构建工具的情况下,需要使用命令行工具或者 IDE 手动打包。而发布流程通常是将 Jar 包上传到服务器上。 ## 二、Java 主流构建工具 Ant 具有编译、测试和打包功能,其后出现的 Maven 在 Ant 的功能基础上又新增了依赖管理功能,而最新的 Gradle 又在 Maven 的功能基础上新增了对 Groovy 语言的支持。 -

+

Gradle 和 Maven 的区别是,它使用 Groovy 这种特定领域语言(DSL)来管理构建脚本,而不再使用 XML 这种标记性语言。因为项目如果庞大的话,XML 很容易就变得臃肿。 @@ -95,7 +95,7 @@ POM 代表项目对象模型,它是一个 XML 文件,保存在项目根目 #### 1. 依赖路径最短优先原则 -```html +```text A -> B -> C -> X(1.0) A -> D -> X(2.0) ``` @@ -103,7 +103,7 @@ A -> D -> X(2.0) #### 2. 声明顺序优先原则 -```html +```text A -> B -> X(1.0) A -> C -> X(2.0) ```