Gradle 和 Maven构建简单Java工程

  • 序言
  • Maven
  • Maven的介绍
  • Maven的安装和配置
  • Idea使用Maven构建简单的Java工程
  • Maven的学习和文档地址
  • Gradle
  • Gradle的介绍
  • Gradle的安装和配置
  • Idea使用Gradle构建简单的Java工程
  • Gradle的学习和文档地址


序言

本文主要进行Gradle和Maven构建工具的介绍,以及介绍如何使用Gradle和Maven构建一个简单的Java工程。

Maven

Maven的介绍

Maven是一个管理项目的构建,报告和文档的项目管理工具的软件。项目中为什么要使用Maven呢?长话短说,简单理解Maven主要可以带来两点好处:

  1. Maven具有丰富的构建插件,帮助我们做高定制化的打包构建。我们都知道构建是一个将程序编译成可执行程序后和相关的库,资源文件进行打包的过程,但是有时候需要对应不同的环境做不同的配置,乃至手动修改配置文件,这是一个重复而繁琐的工作。而Maven的插件通过在编译前后等阶段对文件流进行操作,从而支持使得这个过程变得简便和自动化。
  2. Maven提供了引用库的远程仓库,可以通过Maven特定的地址格式自动从远程加载库到本地并完成引用。这个过程就好像python的pip,nodejs的npm,apt等包(库)管理工具。

链接:Maven仓库库地址

Maven的安装和配置

如果是Linux下Maven的配置请参考博客《Linux 环境下安装Maven》 以下介绍Window10下安装配置Maven的步骤:

  1. 下载Maven。这里需要注意官方给的提示,需要依赖java版本xx以上等。这里下载bin压缩包即可,有兴趣的同学可以下载源码src包,或者上github研究附上下载地址:Maven官方下载地址
  2. 运行Maven。下载完毕后将压缩包解压,得到如下文件夹按下win+r,输入cmd回车进入控制台。使用cd命令进入apache-maven-xx文件夹的bin目录,命令过程如下(这不是扫盲文,故不详细介绍)输入mvn -v回车得到如下结果,则说明下载配置完成。(这里不介绍环境变量的配置,环境变量只是把mvn文件所在的目录写入配置,使得cmd中所有位置可以找到mvn文件)

Idea使用Maven构建简单的Java工程

  1. 打开idea,新建Maven工程
  2. gradle替换 maven_Gradle

    gradle替换 maven_xml_02

  3. 这边学需要介绍一下Maven的定位方式,Groupid和ArtifactId被统称为“坐标”是为了保证项目和包的唯一性而提出的。GroupId一般写com.公司(组)名称,ArtifactID写项目名称。如果你现在无法理解这两个参数的作用,没关系,在接下来的Maven工程配置文件中会再次出现。
  4. gradle替换 maven_gradle替换 maven_03

  5. 一路next后看到项目界面
  6. gradle替换 maven_xml_04

  7. 为Idea配置Maven,点击 file -> setting,在设置页面搜索框输入"Maven"进行搜索
  8. gradle替换 maven_xml_05

  9. 设置Maven配置文件,位置在Maven文件夹下的conf/settings.xml,设置结束后点击ok完成配置。
  10. gradle替换 maven_gradle替换 maven_06

  11. 编写 Hello World启动程序(这里比较简单我不一一介绍)
  12. gradle替换 maven_xml_07

  13. 引用FastJson库,进入Maven库,搜索fastjson,选择阿里的包,进入
  14. gradle替换 maven_gradle替换 maven_08

  15. 选择一个版本进入
  16. gradle替换 maven_gradle替换 maven_09

  17. 进入后下拉到底部可以看到jar包的依赖项,当然这个依赖项对于我们的demo没有影响,但在以后其他的jar包中你可能需要查看依赖项,防止依赖缺失或冲突
  18. gradle替换 maven_gradle替换 maven_10

  19. 回到页面顶部,可以看到这样一段xml。这里又见到了原先提到过的GroupId和ArtifactId对于Maven定位的作用,相信通过接下来的引用操作,可以很容易理解它的含义。
  20. gradle替换 maven_xml_11

  21. 将这段xml复制到项目的pom.xml(Maven工程配置文件)文件的dependencies标签下
  22. gradle替换 maven_xml_12

  23. 可以看到版本号处报错,这是由于没有引用成功引起的,接下来我们要对fastjson进行引用。点开项目右侧的Maven选项栏,点击刷新按钮进行引用
  24. gradle替换 maven_gradle替换 maven_13

    gradle替换 maven_gradle替换 maven_14

  25. 等待下载引用完毕后,可以看到pom.xml中版本号的异常消失,说明引用成功。
  26. gradle替换 maven_Gradle_15

  27. 在启动类中使用fastjson进行验证
public class Main {

    static class Person {
        private String name;

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }
    }

    public static void main(String[] args) {
        Person person = new Person();
        person.setName("小明");
        System.out.println(JSON.toJSONString(person));
    }
}

选择启动类,右键Run启动

gradle替换 maven_xml_16

启动成功后可以看到控制台如下输出

gradle替换 maven_gradle替换 maven_17


总结:通过这段对Maven的使用,我们可以发现Maven带来的第一个好处,那就是jar包的统一管理,和自动化的引用。jar包的统一管理使得我们不必重复的下载库到各个项目中,提高了库的复用性,便于版本管理。自动化的引用简化了包引用的过程,避免重复的人工操作,提高工作效率。

Maven的学习和文档地址

菜鸟Maven教程

Gradle

Gradle的介绍

如果原先有接触过安卓开发的同学一定对Gradle非常熟悉,Gradle同样也是一款优秀的项目管理和自动化构建工具。Gradle的同样具有Maven的优点,这边我不再一一重复。除此之外,Gradle具有可编程性,使得开发人员对项目的构建更加灵活,具有更高的定制化,使得工具能力不再受到插件掣肘。后面的文章中更多的会介绍Gradle的使用,这并不是说明Maven不如Gradle,Maven具有更多的插件和丰富的中文文档,同样是一款优秀的工具。

Gradle的安装和配置

如果是Linux下Gradle的配置请参考后续博客《CentOS7搭建Jenkins自动化构建》。

  1. 下载Gradle。附:Gradle下载地址,下载bin压缩包后解压得到以下文件夹
  2. 运行Gradle确保下载可用,使用cmd进入gradle文件夹下的bin目录输入gradle -v看到以下信息后,说明运行成功

Idea使用Gradle构建简单的Java工程

  1. 打开idea,新建gradle工程
  2. gradle替换 maven_Java_18

  3. 和Maven工程一样填写好项目的标识,后进入Gradle的配置页面,选择本地的Gradle插件,GradleHome为远程包的存放管理位置,可自定义位置。
  4. gradle替换 maven_xml_19

  5. 一路next后进入如下界面,则完成了Gradle工程的创建。
  6. gradle替换 maven_Gradle_20

  7. 编写第一个Hello World程序,创建包如下
  8. gradle替换 maven_gradle替换 maven_21

  9. 点击File->Project Structures设置java包类型为源代码
  10. gradle替换 maven_gradle替换 maven_22

  11. demo包下创建Main类,编写Hello World程序
  12. gradle替换 maven_xml_23

  13. 点击Gradle刷新,进行工程构建,编译(注:这一步骤很重要,否则可能会导致无法启动)
  14. gradle替换 maven_Java_24

  15. 点击启动后在控制台看到Hello World则说明启动成功
  16. gradle替换 maven_xml_25

  17. 引用远程仓库中的FastJson,同样我们进入Maven仓库中FastJson页面,点击Gradle选项,复制Gradle引用代码
  18. gradle替换 maven_Java_26

  19. compile group: 'com.alibaba', name: 'fastjson', version: '1.2.61' 复制放入build.gradle工程配置文件的dependencies节点下
  20. gradle替换 maven_xml_27

  21. 点击Gradle刷新按钮进行引用
  22. gradle替换 maven_xml_28

  23. 引用成功后修改代码如下
public class Main {

    public static void main(String[] args) {
        Map<String, Object> map = new HashMap<>();
        map.put("year", "2019");
        map.put("peopleCount", 10);
        System.out.println(JSON.toJSONString(map));
    }

}

运行后可以看到fastJson正常工作

gradle替换 maven_xml_29

Gradle的学习和文档地址

Gradle中文文档地址