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'           }    }

gradle对java插件的扩展_Gradle之java插件入门相关推荐

  1. java数组可扩展_[转载]Java数组扩容算法及Java对它的应用

    Java数组扩容的原理 1)Java数组对象的大小是固定不变的,数组对象是不可扩容的. 2)利用数组复制方法可以变通的实现数组扩容. 3)System.arraycopy()可以复制数组. 4)Arr ...

  2. Java I/O 扩展

    Java I/O 扩展 标签: Java基础 NIO Java 的NIO(新IO)和传统的IO有着相同的目的: 输入 输出 .但是NIO使用了不同的方式来处理IO,NIO利用内存映射文件(此处文件的含 ...

  3. java 爬虫 请求头_得到java头

    Linux下JNI调用简单实例操作全过程 开发环境:Linux(Ubuntu 11.04) + JDK 7 实例说明:利用JNI调用本地代码的方法来实现一个计算Int数组总和的功能 使用JNI调用本地 ...

  4. java语言程序设计考题_《JAVA语言程序设计》期末考试试题及答案6(应考必备题库)...

    <JAVA语言程序设计>期末考试试题及答案6(应考必备题库) 一.填空题 1.定义类的保留字是( class ),定义接口的保留字是( interface ). 2.Socket通常也称为 ...

  5. 【Android Gradle 插件】Extension 扩展类型 ( Module 引入插件类型 | application 插件 | library 插件 | Variants 变体列表 )

    文章目录 一.Module 引入插件类型 1.com.android.application 插件 2.com.android.library 插件 二.Extension 扩展类型 三.applic ...

  6. gradle构建java实例_Gradle构建Java应用程序

    文章摘要 1.运行init,创建 2.执行创建 3.运行应用程序 一.运行init任务 要运行该init任务,请从命令提示符运行以下命令: $ gradle init --type name来自如下: ...

  7. java插件化_从零开始实现一个插件化框架(一)

    欢迎关注专栏:里面定期分享Android和Flutter架构技术知识点及解析,还会不断更新的BATJ面试专题,欢迎大家前来探讨交流,如有好的文章也欢迎投稿.Flutter跨平台开发终极之选​zhuan ...

  8. 又一巅峰!,Java开发实用必备的几款插件

    实战::Eclipse运行速度调优 调优前的程序运行状态 升级JDK版本的性能变化及兼容问题 编译时间和类加载时间的优化 调整内存设置控制垃圾收集频率 选择收集器降低延迟 可视化故障处理工具 JHSD ...

  9. Visual Studio Code(插件篇):Visual Studio Code 必装的 10 个高效开发插件(扩展)

    插件,亦成为 扩展. 使VSCode 如虎添翼. 本文介绍了目前前端开发最受欢迎的开发工具 VSCode 必装的 10 个开发插件,用于大大提高软件开发的效率. 相关文章推荐:Visual Studi ...

最新文章

  1. 如何创建systemd定时任务
  2. 实现php实现价格的排序,php 数组动态添加实现代码(最土团购系统的价格排序)_PHP教程...
  3. Spring Cloud Sleuth 中id的使用
  4. Safari 版本回退方法
  5. 一键快速生成 Vue 的 HTML页面结构代码
  6. mysql中为表创建副本_如何为数据库建立一个副本?
  7. Redis 快速搭建与使用
  8. 一文捋清Android消息机制
  9. 解决Hadoop总是处于安全模式的问题
  10. ssms 连接 ssis_SSIS连接管理器:OLE DB,ODBC,ADO.NET
  11. angular-devextreme treeview 学习笔记
  12. 生物化学,材料化学必备!元素周期表
  13. 洛谷P3354 [IOI2005]Riv 河流 题解
  14. pcie转m2装系统win10_m.2固态硬盘怎么装win10教程|m.2固态硬盘装win10教程步骤
  15. 人人都该了解的思维修炼
  16. 【Java中级】8.5 SSH之Hibernate框架(五)——关于Criteria(QBC)过时的补充
  17. 新笑傲江湖手游如何用电脑玩 新笑傲江湖手游PC电脑版玩法教程
  18. Swift之高德地图的调用
  19. 普惠AI时代,抓住机遇奋力一搏
  20. oracle 和mysql语法上的区别,Mysql和Oracle的一些语法区别

热门文章

  1. php提取淘宝URL中ID的代码
  2. android 去掉顶部状态栏
  3. tyvj 1068 STR
  4. 49 - 算法 - Leetcode 112 路径总和 -二叉树递归 带参数一起递归
  5. php框架中间件,【框架十】Coder PHP Framework 中间件
  6. 使用Python 3.5/3.6监听本机任意窗口中的按键操作
  7. Hash (散列,哈希)
  8. Ground Turth在深度学习中的意思
  9. php 波形图,PHP分析.wav文件并绘制png格式的波形图_PHP
  10. python透明图处理_python – 强制matplotlib图的背景是透明的