美文网首页
04 Gradle 入门-Gradle 普通项目搭建

04 Gradle 入门-Gradle 普通项目搭建

作者: 黄少存 | 来源:发表于2019-07-10 20:46 被阅读0次

    文章来源

    到这里,相信大家都已经知道 Gradle 就是一个构建工具,其主要的目的就是帮咱们构建项目,以下我就通过一个普通的 Java 项目和普通的 web 项目的构建带你走入 Gradle 项目构建.

    1 Gradle 搭建Java项目

    使用构建工具搭建 Java 项目的主要目的就是其自动的打包和依赖功能.以下就来看下如何使用 Gradle 搭建 Java 项目

    1.1 项目创建

    IDEA 自带 Gradle 和 Groovy 插件,所以可以直接创建 Gradle 项目.如果是 eclipse 需要安装对应的插件.

    IDEA 创建 Gradle Java 项目

    1. file -> new project -> Gradle -> 勾选 Java
    2. 输入: GroupId,ArtifactId,Version
    3. Use local graedle distribution 选择Gradle home
    4. 在 src/main/java下创建包 cn.wolfcode和创建 App.java 类
    5. 在 App 中打印 hello gradle,测试
    Java 项目搭建.gif

    以上操作咱们就已经使用 Gradle 搭建好了 Java 项目,项目中自动生成了目录和 build.gradle,settings.gradle,接下来咱们就来看下build.gradle

    1.2 build.gradle 和项目目录

    // plugins 方法,传入闭包{} 作为参数
    plugins {
        id 'java'
    }
    group 'cn.wolfcode.gradle'    // group 方法
    version '1.0-SNAPSHOT'
    sourceCompatibility = 1.8    // 变量
    // repositories  方法,传入闭包
    repositories {
        mavenCentral()
    }
    // dependencies 方法,传入闭包
    dependencies {
        testCompile group: 'junit', name: 'junit', version: '4.12'
    }
    

    创建完项目之后会自动生成 build.gralde , 里面配置了构建项目的基本脚本.
    此脚本用的就是 Groovy 语言书写的,从脚本上看可得知,除了sourceCompatibility 是变量,其他的都是方法调用.
    plugins,repositories ,dependencies 传入的是闭包.至于每一项配置是什么意思,期待后面的构建脚本介绍.

    从创建出来的项目上咱们可以看到自动生成了一些目录,这些目录结构跟 Maven 构建是相同的.结构如下:


    image.png

    构建工具构建的Java项目主要目的是可以打包.接下来咱们就来看下如何使用 Gradle 给项目打包

    1.3 Gradle 打包 Java 项目

    操作非常简单,在 IDEA 右边有一 Gradle ,展开找到 Tasks 任务,展开 Tasks下的 build 直接点击 jar 就可以打包.

    image.png

    当点击了 jar 之后就会自动打包到项目下的build/libs下,如图


    image.png

    以上使用 Gradle 构建普通的 Java 项目就已经完成了,接下来咱们就来看下如何使用 Gradle 构建普通的 web 项目

    2 Gradle 构建 web 项目

    使用 Gradle 构建 web 项目和 构建 Java 项目类似,只在第一步位置勾选 web 即可.

    2.1 创建 web 项目

    1. file -> new project -> Gradle -> 勾选 Web
    2. 输入: GroupId,ArtifactId,Version
    3. Use local graedle distribution 选择Gradle home

    具体操作如下

    web项目搭建.gif

    以上操作咱们就已经使用 Gradle 搭建好了 Java 项目,项目中自动生成了目录和 build.gradle,settings.gradle,接下来咱们就来看下build.gradle

    2.2 build.gradle 和项目目录

    plugins {
        id 'java'
        id 'war'   //比普通的 java 项目多出了一个 war 插件的引入
    }
    
    group 'cn.wolfcode.gradle'  
    version '1.0-SNAPSHOT'
    sourceCompatibility = 1.8
    
    repositories {
        mavenCentral()
    }
    
    dependencies {
        testCompile group: 'junit', name: 'junit', version: '4.12'
    }
    

    以上咱们可以看出,web项目只是在build.gradle 中多引入了war 插件而已.
    目录由工具自动生成,如果是手动将 Java 项目改为 web 项目需要自己手动创建目录或者自己书写生成目录的插件.自动生成目录如下.


    image.png

    以上使用 Gradle 项目咱们就已经构建好了一个简单的 web 项目.而作为一个强大的构建工具,不仅仅是约束了项目结构那么简单,其实还可以打成 war 包和引入插件,这里作为一个简单的 web 项目,咱们就先来打个 war 包吧.

    2.2 web 项目打包为 war 包

    操作非常简单,在 IDEA 右边有一 Gradle ,展开找到 Tasks 任务,展开 Tasks下的 build 直接点击 war 就可以打包.


    image.png

    当点击了 war 之后就会自动打包到项目下的build/libs下,如图


    image.png

    以上使用 Gradle 构建普通的 web 项目就已经完成了.

    FS : 你这个骗子! 我的 IDEA 不会自动生成目录,还有错误!!!
    ME : 是你太快了,有时太快也是不好滴...
    ME : 如果用的是 2016 版,在创建项目时勾选自动创建目录,如下
    口 Create directories fo empty content roots automatically

    FS : 已经创建了,不想删除再重新创建咋办?
    ME : 那就手动创建目录呗 !!! (●>∀<●)ノ♥

    ME : 创建完了吗? 完了告诉你,其实还可以自动生成目录. (●’◡’●)ノ♥
    ME : 是不是一下子把目录都给记住了. 哈... 哈... 哈...

    3 自定义目录生成任务

    def createDir(fileName){
        File f = new File(fileName);
        f.mkdirs()
    }
    
    task createJavaProjectDir << {
        def dirList = ['src/main/java','src/main/resources','src/test/java','src/test/resources']
        dirList.each {fileName ->
            createDir(fileName)
        }
    }
    
    task createWebProjectDir (dependsOn: createJavaProjectDir) << {
        def fileName = 'src/main/webapp'
        createDir(fileName)
    }
    

    刷新 Task 列表在other下直接双击 createWebProjectDir 即可生成目录。当然这些可能看不懂,先不管,生成了再说,详情请看任务篇。

    相关文章

      网友评论

          本文标题:04 Gradle 入门-Gradle 普通项目搭建

          本文链接:https://www.haomeiwen.com/subject/loiwbftx.html