美文网首页
Java Gradle 插件 -- 应用及项目结构

Java Gradle 插件 -- 应用及项目结构

作者: 冯可乐同学 | 来源:发表于2022-01-04 08:53 被阅读0次

----《Android Gradle 权威指南》学习笔记

总目录:Gradle 学习系列 -- 目录

上一篇:Gradle 插件 -- 自定义插件

下一篇:Java Gradle 插件 -- 配置第三方依赖

1 在 IDEA 中应用 java 插件

1.1 在 IntelliJ IDEA 中新建 Java 工程后,默认就会应用 Java 插件,如图所示: java 插件

1.2 java 插件会为工程添加跟多有用的默认设置和约定,比如源代码的位置、单元测试代码的位置、资源文件的位置等。一般情况下写代码或该配置都按照这些默认的设置。因为这些都已经是约定俗成了,便于团队协作。

2 java 插件约定的项目结构

2.1 默认情况下,java 插件约定 src/main/java 是项目源代码存放目录;src/main/resources

是资源目录,比如配置文件和图片等;src/test/java 是单元测试用例存放目录,执行单元测试的时候,Gradle 会在这个目录下搜索单元测试用例;src/test/resources 存放的是单元测试中使用的文件。如图所示: java 工程结构

2.2 main 和 test 是 java 插件内置的两个源代码集合,在项目中也可以自己添加一些目录。比如在项目中有 vip 版本,那就可以添加一个 vip 的目录存放相关的 java源码和文件。在 build.gradle 中需要如下配置:

sourceSets {
    vip {

    }
}
然后在项目的 src 路径下 添加 vip/java、vip/resources 目录就可以存放源码和资源文件了。添加后目录如图所示: 添加目录

2.3 上面在 build.gradle 中添加目录的语句 vip{}使用了简写,即使用了默认的配置,完整的写法应该是:

sourceSets {
    vip {
        java {
            srcDir 'src/sourceSet/java'
        }
        resources {
            srcDir 'src/sourceSet/resources'
        }
    }
}

所以也可以修改配置里面的路径,从而改变工程的结构,比如:

sourceSets {
    vip {
        java {
            srcDir 'src/java'
        }
        resources {
            srcDir 'src/res'
        }
    }
}

2.4 SourceSet -- 源代码集合(源集)是 Java 插件用来描述和管理源代码及其资源的一个抽象概念,是一个 Java 源代码文件和资源文件的集合。通过源集,可以非常方便地访问源代码目录,设置源集的的属性,更改源集的 Java 目录或资源目录等。

2.5 Java 插件在 Project 下提供了一个 sourceSets 属性以及一个 sourceSets{} 闭包来访问和配置源集。sourceSets 是一个SourceSetContainer。sourceSets{} 闭包配置的都是 SourceSet 对象。比如在 build.gradle 中添加一下任务:

task taskShowName{
    sourceSets.all {
        println name
    }
}

在 IDE 的 Gradle 面板中执行 taskShowName 任务,或者在命令行中运行命令:
gradle taskShowName
打印结果:

> Configure project :
main
test
vip

2.6 源集有很多有用的属性,下面列出一些常用的属性:

属性名                  类型                   描述
name                  String               只读的,比如 main
output.classesDir     File                 源集编译后的 class 文件目录
output.resourcesDir   File                 编译后生成的资源目录
compileClasspath      FileCollection       编译源集时所需的 classpath
java                  SourceDirectorySet   源集 Java 源文件
java.srcDirs          Set                  源集 Java 源文件的目录
resources             SourceDirectorySet   源集的资源文件
resources.srcDirs     Set                  源集资源文件的目录
相关代码:https://gitee.com/fzq.com/gradle-demos

相关文章

网友评论

      本文标题:Java Gradle 插件 -- 应用及项目结构

      本文链接:https://www.haomeiwen.com/subject/wqgcfrtx.html