前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Gradle 笔记

Gradle 笔记

作者头像
tonglei0429
发布2019-07-24 14:36:53
6250
发布2019-07-24 14:36:53
举报

Gradle 可以代替 Maven 完成自动化构建。

Gradle 结构

  • setting.gradle // 确定参与构建的 Project 集合
    • build.gradle // 执行 Task 的必备信息
      • TaskA // 最小执行单元
      • TaskB
      • ...

最基本的任务定义

Task 是 Gradle 构建的最小执行单元。 clean 就是一种最常见的 Task。

Task 就相当于 Java 中的一个类,继承于基类 DefaultTask,也可以再被子 Task 集成

代码语言:javascript
复制
// build.gradle
task hello {
	println "配置阶段执行"
  doFirst {
    println '最先执行'
  }
	doLast {
		println '最后执行'
  }
}
代码语言:javascript
复制
$ gradle hello
> Configure project :
配置阶段执行

> Task :hello
最先执行
最后执行

BUILD SUCCESSFUL in 0s
1 actionable task: 1 executed

常用命令:

  • gradle init 用于创建项目骨架

单个 Java 项目构建

常用任务:

  • clean 删除 build 目录以及所有构建完成的文件。
  • assemble 编译并打包 jar 文件
  • check 编译并测试代码。
  • dependencies 添加外部依赖

Java 项目 build.gradle 示例

代码语言:javascript
复制
apply plugin: 'java' // 使用 Java 插件。可用于自动寻找对应目录,及其他默认配置
apply plugin: 'eclipse' // 使用 eclipse 插件。
sourceCompatibility = 1.5 // 编译级别
version = '1.0' // 代码版本
jar {  // 为 jar (打包)任务的 manifest 模块增加属性定义
    manifest {
        attributes 'Implementation-Title': 'Gradle Quickstart', 'Implementation-Version': version
    }
}
repositories { // 配置 Gradle 的依赖源,此处使用 Maven 作为依赖源
    mavenCentral()
}
dependencies { // 配置项目依赖,相当于 Maven 种的 dependencies
    compile group: 'commons-collections', name: 'commons-collections', version: '3.2'
    testCompile group: 'junit', name: 'junit', version: '4.+'
}
test { // 为测试任务增加属性定义
    systemProperties 'property': 'value'
}
uploadArchives { // 发布 Jar 包
    repositories {
       flatDir {
           dirs 'repos'
       }
    }
}

多个 Java 项目构建

项目结构

代码语言:javascript
复制
multiproject/
  api/
  services/webservice/
  shared/

此处有三个工程。api 工程用来生成给客户端用的 jar 文件,这个 jar 文件可以为 XML webservice 提供 Java 客户端。webservice 是一个 web 应用,生成 XML。shared 工程包含的是前述两个工程共用的代码。

  1. 多项目构建定义 定义一个多项目构建工程需要在根目录(本例中与 multiproject 同级)创建一个setting 配置文件来指明构建包含哪些项目。并且这个文件必需叫 settings.gradle 本例的配置文件如下: // /settings.gradle include "shared", "api", "services:webservice", "services:shared"
  2. 公共配置 对多项目构建而言,总有一些共同的配置.在本例中,我们会在根项目上采用配置注入的方式定义一些公共配置。根项目就像一个容器,子项目会迭代访问它的配置并注入到自己的配置中。这样我们就可以简单的为所有工程定义主配置单了: // /build.gradle subprojects { apply plugin: 'java' apply plugin: 'eclipse-wtp' repositories { mavenCentral() } dependencies { testCompile 'junit:junit:4.11' } version = '1.0' jar { manifest.attributes provider: 'gradle' } } 注意: 这里为每个子项目都应用了 Java 插件。
  3. 多项目中的工程依赖 // /api/build.gradle dependencies { compile project(':shared') }
  4. 打包发布 task dist(type: Zip) { dependsOn spiJar from 'src/dist' into('libs') { from spiJar.archivePath from configurations.runtime } } artifacts { archives dist }
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Gradle 结构
  • 最基本的任务定义
  • 单个 Java 项目构建
  • 多个 Java 项目构建
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档