Gradle SourceSet

java插件

在讲source set之前,不得不提一下java插件,因为source set这个概念是由java插件引进的。那当然,要使用java插件很简单,只需要在build.gradle文件中 使用apply plugin:"java" 引入java插件即可

Source Sets

source set说白了就是一组源文件放在一起,这样能够一起编译和执行。而源文件包含了java的源文件(即.java文件)和资源文件(如: .cfg, .properties)

Java Plugin定义了两个标准的source sets。 main 和 test。main这个source set包含了我们的java源代码,我们可以将这个source set里面的文件编译成JAR包。 而 test source set包含了测试的代码,我们可以使用junit来编译和执行。

默认的项目结构

src/main/java production java srouce
src/main/resources production resources
src/test/java test java srouces
src/test/resources test resources

那么如何修改我们的项目结构呢? 还有,如果想要自定义source set的时候,那应该要怎么做呢?

修改项目结构

在build.gradle 添加如下配置既可以修改默认的source set

srouceSets {
    main{
        java{ 
            srcDir 'src/java'
        }
        resources{
            srcDir 'src/resources'
        }
    }
}    

这样子的话,项目的结构就会变成

src/java
src/resource

而不再是原来的

src/main/java
src/main/resource
自定义srouce set
srouceSets {
    mySourceSet{
        java{ 
            srcDir 'src/mySourceSet/java'
        }
        resources{
            srcDir 'src/mySourceSet/resources'
        }
    }
}

在这里我们自定义了我们的srouce set名唤 mySourceSet,因此我们项目的结构就会变成

src/main/java
src/main/resources
src/test/java
src/test/resources
src/mySourceSet/java
src/mySourceSte/resources

每当我们自定义了srouceSet之后,java plugin就会自动添加一些编译任务

  • compileSourceSetJava
  • compileSourceSetResources
  • sourceSetClasses

类似的,如果我们想要编译我们自定义的源目录下面的源文件的话,我们需要使用
compileSourceSetJava这个任务~ 而不是简单的compile任务(compile任务是 main 这个source set的编译任务~ ~~ testCompile是test 这个source set的编译任务~ )

同样,对于资源文件的拷贝和classes及资源文件的集聚的任务都和main,test这两个source set对应的任务一样对应~~

<<< 捐赠 >>>

转载请注明出处! 原文地址: http://webinglin.github.io

留言

2015-05-13