Gradle 使用实例

  1. 总项目结构如下,其中有三个文件:
  1. gradle.properties 用来配置属性
group=com.yawn version=1.0-SNAPSHOT
  1. settings.gradle 用来说明此项目包含的模块
rootProject.name = 'demo6' 
include 'entity' 
include 'service' 
include 'web'
  1. build.gradle 管理依赖等,类似于maven的pom文件
allprojects {
    apply plugin: 'java'
    sourceCompatibility = 1.8
}
// 同 allprojects
subprojects {
    repositories {
        mavenLocal()
        maven {
            // maven 私服
            url ''
        }
        mavenCentral()
    }

    dependencies {
        compile group: 'org.apache.logging.log4j', name: 'log4j-core', version: '2.9.1'
        testCompile group: 'junit', name: 'junit', version: '4.12'
    }

}
  1. 此外,此项目下有三个子模块:entity、service、web,三个子模块的依赖关系为web-->service-->entity。三个子模块分别只有build.gradle文件,如下:
    1. entity
dependencies {
    compile ('org.hibernate:hibernate-core:5.2.11.Final') {
        // 排除hibernate对self4j的依赖
        exclude(group: 'org.slf4j', module: 'selef4j-api')
    }
}
  1. service
dependencies {
    compile project(":entity")
}


/*
def createDir = {
    path ->
        File dir = new File(path);
        if (!dir.exists()) {
            dir.mkdirs();
        }
}

task makeJavaDir() {
    def paths = ['src/main/java', 'src/main/resources', 'src/test/java', 'src/test/resources']
    doFirst {
        paths.forEach(createDir)
    }
}
task makeWebDir() {
    def paths = ['src/main/webapp']
    doLast {
        dependsOn(makeJavaDir)
        paths.forEach(createDir)
    }
}
*/
  1. web
apply plugin: 'war'

dependencies {
    compile project(":service")
}



/*
def createDir = {
    path ->
        File dir = new File(path);
        if (!dir.exists()) {
            dir.mkdirs();
        }
}

task makeJavaDir() {
    def paths = ['src/main/java', 'src/main/resources', 'src/test/java', 'src/test/resources']
    doFirst {
        paths.forEach(createDir)
    }
}
task makeWebDir() {
    def paths = ['src/main/webapp', 'src/test/webapp']
    doLast {
        dependsOn 'makeJavaDir'
        paths.forEach(createDir)
    }
}
*/

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏mwangblog

git版本控制

993
来自专栏开源优测

Selenium Webdriver Desired Capabilities

前言 我们每一个的selenium测试都应该在指定的环境下运行,这个环境可以是web浏览器、移动设备、移动模拟器等等。 那怎么来指定我们的selenium测试脚...

2698
来自专栏Java技术

Git的核心概念

文章内容来自自己的理解 和 https://git-scm.com/book/en/v2 。

724
来自专栏SDNLAB

POF技术分享(二):POF交换机源码结构

一:函数调用关系图 POF交换机先会进行基本配置的初始化、交换机资源初始化等,然后开启交换机与控制器通信进程,建立连接进行通信,最后开启基于流表的数据包匹配与处...

3397
来自专栏jeremy的技术点滴

docker源码分析-Daemon创建及启动

3105
来自专栏编程

Python接口自动化-7-unittest

unittest简介 unittest是python自带的一个单元测试框架,详细介绍可参看官网:https://docs.python.org/3.4/libr...

1965
来自专栏鬼谷君

mysql 5.7主从安装和配置

834
来自专栏青玉伏案

Git知识总览(四) git分支管理之rebase 以及 cherry-pick相关操作

上篇博客聊了《Git知识总览(三) 分支的创建、删除、切换、合并以及冲突解决》,本篇博客我们主要来看一下 rebase 变基相关的操作。rebase 操作和 m...

3065
来自专栏Crossin的编程教室

图解Git

此页图解git中的最常用命令。如果你稍微理解git的工作原理,这篇文章能够让你理解的更透彻。 正文 基本用法 约定 命令详解 Diff Commit Chec...

3538
来自专栏自动化测试实战

selenium数据驱动

3446

扫描关注云+社区