Gradle(二) Java 构建

本文介绍如何使用Gradle的Java插件进行项目构建,包括引入插件、配置依赖、定制操作及多项目构建等核心内容。
Java插件

Gradle 对java的支持,是通过插件实现的。Java 插件是基于合约的,
这意味着插件已经给项目的许多方面定义了默认的参数,
比如 Java 源文件的位置. 如果你在项目里遵从这些合约,那么只需要很少的配置。

引入java插件
apply plugin: 'java'

或者

plugins {
    id 'java'
}

然后就可以使用插件中的任务了。java 插件在项目中添加许多任务。通常只会用到其中的一小部分任务。常用的任务有

  • build 编译和测试代码,生成jar包
  • clean 清除build生成的文件
  • assemble 编译打包代码,但是不运行测试
  • check 编译和测试代码
指定仓库
// maven 仓库
repositories {
    mavenCentral()
}
引入依赖
dependencies {
//    编译阶段
    compile group: 'commons-collections'
//    测试阶段
    testCompile group: 'junit', name: 'junit', version: '4.12'
}

定制操作

java 插件给 项目添加了一些默认属性,并赋予了初值。当然也可以根据自己的需求改变值

查看默认属性:

gradle properties

声明当前的jdk版本和指定当前项目的版本:

sourceCompatibility = 1.5
version = '1.0'
jar {
    manifest {
        attributes 'Implementation-Title': 'Gradle Quickstart', 'Implementation-Version': version
    }
}

测试阶段添加系统属性:

test {
    systemProperties 'property': 'value'
}
发布jar 文件
uploadArchives {
    repositories {
        flatDir {
            // 指定生成jar包的位置
            dirs 'repos'
        }
    }
}
一个完整的java构建脚本
apply plugin: 'java'
apply plugin: 'eclipse'

sourceCompatibility = 1.5
version = '1.0'
jar {
    manifest {
        attributes 'Implementation-Title': 'Gradle Quickstart', 'Implementation-Version': version
    }
}

repositories {
    mavenCentral()
}

dependencies {
    compile group: 'commons-collections', name: 'commons-collections', version: '3.2'
    testCompile group: 'junit', name: 'junit', version: '4.+'
}

test {
    systemProperties 'property': 'value'
}

uploadArchives {
    repositories {
       flatDir {
           dirs 'repos'
       }
    }
}
多项目构建

项目目录结构如下:
在这里插入图片描述

step1: 在idea中,通过new Module或者import Module 给工程添加模块,、
然后修改最外层的setting.gradle 声明 项目包含的模块,

setting.gradle 如下:

include "common", "gradle-java"

step2: 添加公共配置

公共配置中的配置项,可以应用到子项目中,公共配置中申明和添加的依赖项,子项目可以不再声明和添加

build.gradle 如下:

subprojects {
    apply plugin: 'java'

    repositories {
       mavenCentral()
    }

    dependencies {
        testCompile 'junit:junit:4.11'
    }

    version = '1.0'

    jar {
        manifest.attributes provider: 'gradle'
    }
}

配置完成之后,就可以在根目录下使用gradle的命令,编译,测试 所有的模块

项目之间的依赖

如果A模块依赖B模块,那么我们可以再A模块的build.grade 中添加如下,来使得,B模块先于A模块进行编译
。只需要在依赖中。

dependencies {
    compile project(':B')
}

项目代码git地址:
git代码地址

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值