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 条评论
登录 后参与评论

相关文章

来自专栏Android点滴积累

ListView:The content of the adapter has changed but ListView did not receive a notification终极解决方法

使用ListView时遇到如下的异常信息: 10-26 18:30:45.085: E/AndroidRuntime(7323): java.lang.Ille...

2037
来自专栏数据结构与算法

洛谷P3038 [USACO11DEC]牧草种植Grass Planting

题目描述 Farmer John has N barren pastures (2 <= N <= 100,000) connected by N-1 bidi...

3569
来自专栏AndroidTv

基于滑动场景解析RecyclerView的回收复用机制原理

最近在研究 RecyclerView 的回收复用机制,顺便记录一下。我们知道,RecyclerView 在 layout 子 View 时,都通过回收复用机制来...

7676
来自专栏Golang语言社区

53. Socket服务三次握手的示例 | 厚土Go学习笔记

什么是三次握手呢?这是服务器和客户端之间沟通的过程。 首先,客户端对服务器发送了条信息。 然后,服务端对客户端说,我收到了。 最后,客户端对服务端说,好的,我知...

39010
来自专栏小灰灰

原 Mac下RabbitMq安装与测试教程

2133
来自专栏Linux驱动

8.QT-对话框(模态与非模态)

1743
来自专栏Golang语言社区

53. Socket服务三次握手的示例 | 厚土Go学习笔记

什么是三次握手呢?这是服务器和客户端之间沟通的过程。 首先,客户端对服务器发送了条信息。 然后,服务端对客户端说,我收到了。 最后,客户端对服务端说,好的,我知...

3549
来自专栏何俊林

Android Multimedia框架总结(一)MediaPlayer介绍之状态图及生命周期

前言:从本章开始,将进入Multimedia框架,包含MediaPlayer, Camera, Surface, MediaRecord, 接下来几篇都是Med...

2978
来自专栏IT笔记

JAVA实现的微信扫描二维码支付

吐槽一下 支付项目采用springMvc+Dubbo架构实现,只对外提供接口。 话说,为什么微信支付比支付宝来的晚了那么一点,一句话,那一阵挺忙的,然后就没有时...

1.2K8
来自专栏LIN_ZONE

jsp 自定义标签解决jsp页面中int时间戳的时间格式化问题

之前在项目中根据需求,需要自定义标签,经过查询w3c文档,自己也踩了一些坑,特此记录自定义标签的步骤,下面就以我之前的一个例子中的定义一个时间转换标签为例:gi...

1181

扫码关注云+社区