个人博客:

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. 使用VS2005编译安装openssl1.1.1c

    1.首先获取openssl源码包 openssl-1.1.1c.tar.gz: 2.安装 ActivePerl: 2.解压源码包,打开vs2005命令行工具,通过命令行进入openssl源码包根目录: ...

  2. 知识图谱基础之RDF,RDFS与OWL

    https://blog.csdn.net/u011801161/article/details/78833958 https://blog.csdn.net/baidu_15113429/artic ...

  3. centos和rhel中软件包管理常用命令

    软件包管理的常用命令  rpm软件包的管理  查询类: rpm  -q 软件包的查询: rpm  -q  软件包的名字   //你的记住软件包完整名字 模糊查询:rpm  -qa  |  grep   ...

  4. Centos 中使用通过docker 部署.netcore

    此前,我一直觉得,目前网络上的各种各样的技术文章.技术文档已经足够多,任何一种技术,都可以或多或少的在网络上找到教程,或者在qq群里找到前辈解答.所以,我觉得自己在博客上写文章的意义甚少.甚至觉得自己 ...

  5. Linux中获取本机的最新IPv6地址_更新ddns的脚本

    Linux中获取本机的最新IPv6地址_更新ddns的脚本 转载注明来源: 本文链接 来自osnosn的博客,写于 2019-11-07. 运营商提供ipv6地址. 路由器后有台linux机器,通过e ...

  6. Node.js / Python 日志

    一.Node.js 日志 1.原生 Node.js 原生方法其实很简单,就四个: // 输出到 stdout console.log() console.info() = console.log() ...

  7. 关于 Python_你一定没读过的8个技巧

    介绍 Python 功能和小技巧的文章网上有无数篇,比如变量解压缩,partial 偏函数,枚举可迭代对象... 但关于 Python 我们能说的还有很多.所以今天我将向大家展示一些我知道和有使用过的 ...

  8. Spring基础——配置文件pom.xml,web.xml,ApplicationContext.xml

    Spring配置文件——复制粘贴即用 为了以后兼容SSM框架,直接创建Maven Project,包结构如下图. pom.xml <project xmlns="http://mave ...

  9. Navicat Premium 连接oracle 提示ORA-01017:用户名/口令无效;登陆被拒绝

    Navicat Premium 连接oracle,密码明明是对的,还是提示 ORA-01017:用户名/口令无效:登陆被拒绝.而用Pl/SQL 连接没有问题. 其实用户名和密码是对的,但还是会报错,这 ...

  10. CodeForces-1265E(期望)

    题意 有1~n镜子,每个镜子说你漂亮的概率是pi/100,如果第i个回答你漂亮那么就一直问到第n个说漂亮为止,否则重新从1开始问,一天只问一个镜子,问直到镜子n说你漂亮的期望天数. 思路 设Ei为问到 ...