【Gradle】Java Gradle 插件

个人博客:
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

发布了61 篇原创文章 · 获赞 2 · 访问量 3405

猜你喜欢

转载自blog.csdn.net/milovetingting/article/details/100077399