个人博客:

http://www.milovetingting.cn

Java Gradle 插件

如何应用

apply plugin:'java'

Java插件约定的项目结构

Project
|--build.gradle
|--src
|--main
|--java
|--resources
|--test
|--java
|--resources

main和test是Java插件为我们内置的两个源代码集合,如果想添加自定义的集合,如vip,则可以这样修改:

apply plugin:'java'

sourceSets{
vip{ }
}

添加一个vip源代码集合,然后我们在src目录下添加vip/java,vip/resources目录,就可以分别存放vip相关的源代码和资源文件了。

特殊情况下,我们需要修改java的文件目录,只需要在build.gradle配置对应的目录即可:

sourceSets{
main{
java{
srcDir 'src/java'
}
resources{
srcDic 'src/resources'
}
}
}

如何配置很三方依赖

要想使用第三方依赖,需要告诉Gradle如何找到这些依赖

repositories{
mavenCentral()
}

以上脚本我们配置了一个Maven中心库,告诉Gradle可以在Maven中心库中搜寻我们依赖的第三方库。我们也可以从jcenter库、ivy库、本地Maven库、自己搭建的Maven私服库等 ,甚至我们本地配置的文件夹也可以作为一个仓库。

repositories{
mavenCentral()
maven{
url 'http://www.mavenurl.com'
}
}

有了仓库后,通过配置来告诉Gradle需要依赖什么:

dependencies{
implementation group:'com.squareup.okhttp3',name:'okhttp',version:'3.0.1'
}

以上的简写方式,直接把group,name,version去掉,以:分隔:

dependencies{
implementation 'com.squareup.okhttp3:okhttp:3.0.1'
}

除了以上这种编译时依赖,Gradle还提供了编译测试用例时的依赖:testImplementation

Java插件可以为不同的源集在编译和运行时指定不同的依赖:

dependencies{
mainImplementation 'com.squareup.okhttp3:okhttp:3.0.1'
vipImplementation 'com.squareup.okhttp3:okhttp:2.5.0'
}

项目依赖:

dependencies{
implementation project(':demo')
}

文件依赖:

dependencies{
implementation files('libs/demo.jar','libs/demo2.jar')
}

简写方式:

dependencies{
implementation fileTree(dir:'libs',include:'*.jar')
}

如何构建一个Java项目

常见的任务:

build任务:构建整个项目。

clean任务:删除build目录以及其它构建生成的文件。

assemble任务:不会执行单元测试,只编译和打包。

check任务:只会执行单元测试。

javadoc任务:生成Java格式的doc api文档。

源码集合[SourceSet]概念

SourceSet是Java插件用来描述和管理源代码及其资源的一个概念,是一个Java源代码文件和资源文件的集合。

Java插件添加的任务

详见p65

Java插件添加的属性

详见p66

多项目构建

Project
|--app
|--app.iml
|--build.gradle
|--src
|--base
|--base.iml
|--build.gradle
|--src

以上是目录结构,app是主项目,base是我们的基础依赖项目。下面在settings.gradle中配置:

include ':app'
project(':app').projectDir=new File(rootDir,'chapter6/demo/app')
include ':base'
project(':base').projectDir=new File(rootDir,'chapter6/demo/base')

Gradle为我们提供了基于根项目对其所有子项目的通用配置的方法

subprojects{
apply plugin:'java' repositories{
mavenCentral()
}
}

如何发布构件

详见p69

生成Idea和Eclipse配置

详见p71

【Gradle】Java Gradle 插件的更多相关文章

  1. Gradle & Java

    Gradle & Java Gradle Build Tool I Modern Open Source Build Automation https://gradle.org/ https: ...

  2. Java Gradle入门指南之插件管理(类型、导入及java plugin使用)

        上一篇随笔介绍了如何使用Gradle内建任务,介绍了自定义Gradle任务类的三种方法(build文件,buildSrc文件夹.新建groovy项目),一个任务是一个原子操作,即不可分割的.项 ...

  3. Java Gradle入门指南之gretty插件(安装、命令与核心特性)

        Java Web应用开发时常使用Gradle来进行项目管理,可以十分便利地解决包依赖等问题.war插件的出现,让项目部署成为一个复制粘贴的过程,那有没有办法让Java web应用的部署,就像w ...

  4. Java Gradle入门指南之依赖管理(添加依赖、仓库、版本冲突)

        开发任何软件,如何管理依赖是一道绕不过去的坎,软件开发过程中,我们往往会使用这样那样的第三方库,这个时候,一个好的依赖管理就显得尤为重要了.作为一个自动构建工作,Gradle对依赖管理有着很好 ...

  5. Java Gradle入门指南之简介、安装与任务管理

        这是一篇Java Gradle入门级的随笔,主要介绍Gradle的安装与基本语法,这些内容是理解和创建build.gradle的基础,关于Gradle各种插件的使用将会在其他随笔中介绍.    ...

  6. Gradle Java Web应用程序并在Tomcat上运行

    1- 创建Gradle工程 打开 Eclipse ,在菜单中找到 File -> New -> Other…,在打开界面中选择 Gradle Project,如下图中所示 - 点击下一步( ...

  7. Gradle自己定义插件

    Gradle自己定义插件 在Gradle中创建自己定义插件,Gradle提供了三种方式: 在build.gradle脚本中直接使用 在buildSrc中使用 在独立Module中使用 开发Gradle ...

  8. java~gradle构建公用包并上传到仓库

    java~gradle构建公用包并上传到仓库 我们一般会把公用的代码放在一个包里,然后其它 项目可以直接使用,就像你使用第三方包一样! 仓库 存储包的地方叫做仓库,一般可以分为本地仓库和远程仓库,本地 ...

  9. java~gradle构建公用包并上传到仓库~使用私有仓库的包

    在新的项目里使用仓库的包 上一讲中我们说了java~gradle构建公用包并上传到仓库,如何发布公用的非自启动类的包到私有仓库,而这一讲我们将学习如何使用这些包,就像我们使用spring框架里的功能包 ...

随机推荐

  1. 使用Navicat Keygen激活(破解)Navicat Premium 12

    1.到Navicat官网下载使用版本进行安装,具体操作不再详述.Navcat官网下载链接:http://www.navicat.com.cn/download/navicat-premium : 2. ...

  2. Linux 实验 [Day 01]

    目录 1. Linux 简介(略过) 2. Linux 基本概念及操作:命令.快捷键与通配符 2.1 基础命令 2.2 终端快捷键 2.3 通配符 2.4 帮助命令 3. 用户及文件权限管理 3.1 ...

  3. 【Linux 命令】cp 命令详解

    Linux 命令之 cp 命令详解 一.cp 命令简介 cp 命令主要用于复制文件或目录.即用来将一个或多个源文件或者目录复制到指定的目的文件或目录. cp 命令可以将单个源文件复制成一个指定文件名的 ...

  4. js 获取当前日期和时间

    //显示日期在页面上 yyy-MM-dd function init(){ var date=new Date(); //年 var year=date.getFullYear(); //月 var ...

  5. Mysql 主从复制搭建-极简版

    前言 自己在百度.Google一番踩坑搭建成功后,记录一下,也希望后来人不再被这些坑到. 这里为了方便使用 docker,不会的同学请移步相关 Docker 教程. 正文 1. 启动 mysql #启 ...

  6. ABAP分享一 弹出框函数的简单示例

    在开发中经常会使用到弹出框这个功能,在SAP中有很多函数可以实现类似的功能,这里介绍一个比较简单常用的函数  POPUP_TO_CONFIRM 下面是一个实现的简单示例: TABLES sscrfie ...

  7. dpwwn: 1 Vulnhub Walkthrough

    主机层面扫描: ╰─ nmap -p1-65535 -sV -A 10.10.202.130 22/tcp   open  ssh     OpenSSH 7.4 (protocol 2.0) 80/ ...

  8. MinU: v2 Vulnhub Walkthrough

    主机层面扫描: 22 和 3306 端口 3306 端口默认是MySQL端口,但是这里尝试爆破报错,最后通http访问发现非MySQL协议,而是一个http的服务 http的协议我们进行目录枚举下 枚 ...

  9. 个人app如何收集用户日志

    版权声明:本文为xing_star原创文章,转载请注明出处! 本文同步自http://javaexception.com/archives/147 个人app如何收集用户日志,相信不少人对这个话题感兴 ...

  10. canvas在vue中的应用

    使用cavas可以绘制各种图表.生成二维码.制作H5小游戏. 生命周期 canvas应该在mounted的生命周期中初始化,在updated中是无效的. export default { mounte ...