gradle对java插件的扩展_Gradle之java插件入门

Gradle插件是Gradle的扩展,它对project做了一些配置,会给project添加一些已经配置好的task。Gradle自身带了一些插件,你也可以自定义插件,然后提供给别人使用。其中一个是java plugin,它为project添加了一些task来对你的代码进行编译和单元测试,还有将代码打包成jar文件。

Java plugin是基于惯例的,这意味这在plugin内部定对project的各方面都定义了一些默认的值,比如java源文件的位置。如果您的projcet遵守这个管理,你一般不需要写太多的编译脚本就可以完成编译。Gradle允许您自定义您的project,如果您由于某些原因不想或这不能遵守这些惯例。实际上,由于对java project的支持是通过plugin来实现的,你可以完全不使用这个plugin来编译java工程。

使用java plugin很简单,只需要的build.gradle文件中添加下面一行代码即可:

apply plugin: 'java'

这行代码会应用java plugin到你的project,会添加一些tasks到你的project,可以通过gradle tasks命令来列出添加了哪些task,在本机上执行列出了以下几类task列表,每一类下面又有细分:

Build tasks,Build Setup tasks,Documentation tasks,Help tasks,Verification tasks

一些常用的task:

build:完整编译项目,包含编译,测试和创建jar包

clean:删除build目录

assemble: 编译和创建jar包,但不进行单元测试,其他一些插件可能会添加额外的功能。比如War插件,这个task会生成War file。

check:编译和测试代码。其他一些插件会添加更多的检查,比如checkStyle插件,它会对代码风格进行检查。

Gradle要求的一些惯例:产品源码位于src/main/java,测试代码位于src/test/java。所有位于src/main/resources的文件都被包含到jar包中作为资源文件,所有位于src/test/resources的文件都会被添加到classpath中来执行测试。所有的输出文件都会放在build目录里面,jar文件放在build/libs目录下。

添加Maven仓库

repositories {

mavenCentral()

}

gradle properties 列出工程的所有属性

自定义MANIFEST.MF文件

sourceCompatibility = 1.5

version = '1.0'

jar {

manifest {

attributes 'Implementation-Title': 'Gradle Quickstart',

'Implementation-Version': version

}

}

发布jar文件,在Gradle中jar文件是被发布到仓库中的,下面的例子中发布到了一个本地的目录,你也可以发布到一个远程的地址或者多个地址

uploadArchives{

repositories{

flatDir{

dirs 'testUpload'

}

}

}

多个java工程的编译

定义一个多工程的编译,需要在根目录创建一个设置文件,名称为settings.gradle,它指定了哪些项目即将被编译。        settings.gradle           include "shared", "api", "services:webservice", "services:shared"         在多项目编译中,有一些配置是对所有的工程都需要的,这时我们会采取一种叫做configuration injection的技术:根目录相当于是个容器,subprojects方法会遍历根目录的子工程,然后将这些配置注入进去,通过这种方式我们可以很简单的定义一些共有的配置。        common configuration example:        subprojects {            apply plugin: 'java'            apply plugin: 'eclipse-wtp'            repositories {                mavenCentral()            }           dependencies {                testCompile 'junit:junit:4.11'           }          version = '1.0'          jar {                manifest.attributes provider: 'gradle'           }    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值