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

相关文章

来自专栏三杯水

Codis3.2集群HA高可用方案

Sentinel需要使用原生的Redis-server,版本要等于或高于Codis3.2里面的3.2.8版本, 这里是在Redis3.2.9的下配置测试的,另外...

572
来自专栏FreeBuf

使用CMSTP绕过AppLocker的方法介绍

CMSTP是一个与Microsoft连接管理器配置文件安装程序关联的二进制文件。它接受INF文件,这些文件可以通过恶意命令武器化,以脚本(SCT)和DLL的形式...

683
来自专栏ITCloud的专栏

“网红架构师”解决你的Ceph 运维难题-Part2

本文为长篇连续剧,将分多个篇幅发表,主要介绍了从动手部署环境到后期运营故障处理过程中常见的问题,内容由浅入深,是居家旅行运维Ceph的必备良药。

2674
来自专栏大魏分享(微信公众号:david-share)

Look,容器中应用的构建方法!

S2I增量构建重用以前构建的image中的工件 要创建增量构建,请修改BuildConfig策略定义:

673
来自专栏散尽浮华

Centos7下使用Ceph-deploy快速部署Ceph分布式存储-操作记录

之前已详细介绍了Ceph分布式存储基础知识,下面简单记录下Centos7使用Ceph-deploy快速部署Ceph环境: 1)基本环境

1023
来自专栏GIS讲堂

GDAL的java环境配置以及将shp转换为json

前两天,有位同仁再问我一个问题,问题大概是介个样子的:打包shp数据位zip格式并上传,上传完成后再在web上展示出来。这个需求,以前在Arcgis Onlin...

783
来自专栏华仔的技术笔记

在Spectrum测试链上部署智能合约

"0xa4aa2105cc3e6b6a83faaaf72782d1e9a68e90ca"

542
来自专栏Hadoop实操

如何使用Sentry管理Hive外部表权限

使用如下命令在HDFS的根目录下创建Hive外部表的数据目录/extwarehouse

8768
来自专栏岑玉海

5分钟编写运行一个RChain合约

Rholang是RChain的智能合约语言,RChain是目前已知的区块链3.0当中的技术含量最高的项目,没有之一。 今天介绍如何编写和测试一个RChain智能...

3794
来自专栏玄魂工作室

Hacker基础之Linux篇:基础Linux命令十六

今天我们来学习几个小知识,不一定是Linux的命令,都是用于查看Linux的系统信息的

1143

扫码关注云+社区