Gradle-java插件

Java插件,因为它提供了编译Java源代码,运行单元测试,创建Javadoc和创建JAR文件的任务

任务

任务 功能
jar 组装包含主类的jar归档文件
clean 删除 build 目录以及所有构建完成的文件
build 编译并执行单元测试,并且将 src/main/* 下面 class 和资源文件打包

代码目录

        apply plugin: 'java'
        sourceSets {
        main {
            java {
                srcDir 'src'
            }
        }

        test {
            java {
                srcDir 'test'
            }
        }
        }

仓库

Gradle 是在一个被称之为仓库的地方找寻所需的外部依赖。仓库即是一个按 group,name 和 version 规则进行存储的一些文件,支持maven、ivy仓库.Gradle 会按照顺序从各个库里寻找所需的依赖文件,并且一旦找到第一个便停止搜索.

    repositories {
        jcenter()
        mavenLocal()
        mavenCentral()
        maven {
            url "http://repo.mycompany.com/maven2"
        }
        ivy {
        url "http://repo.mycompany.com/repo"
        }
        ivy {
        // URL can refer to a local directory
        url "../local-repo"
    }

    }

mavenCentral: maven中心仓库

mavenLocal: maven本地仓库

maven: maven远程仓库

ivy:ivy 远程仓库或指向本地目录

依赖

dependencies {
        compile 'commons-cli:commons-cli:1.4'
        compile 'commons-logging:commons-logging:1.2'
        compile group: 'org.hibernate', name: 'hibernate-core', version: '3.6.7.Final'
        compile 'org.hibernate:hibernate-core:3.6.7.Final'

        testCompile 'junit:junit:4.12'
        testCompile 'org.hamcrest:hamcrest-library:1.3'
        testCompile 'org.mockito:mockito-core:2.23.0'
        testCompile 'com.github.stefanbirkner:system-rules:1.17.0'
    }

|名称|范围| |—|—| |compile|编译范围依赖在所有的 classpath 中可用,同时它们也会被打包| |runtime|runtime 依赖在运行和测试系统的时候需要,但在编译的时候不需要| |testCompile|测试期编译需要的附加依赖| |testRuntime|测试运行期需要|

不同的插件提供了不同的标准配置,你甚至也可以定义属于自己的配置项

Java版本

    version = 0.1.1
    sourceCompatibility = 1.8

发布

uploadArchives {
    repositories {
       flatDir {
           dirs 'repos'
       }
    }
    ivy {
            credentials {
                username "username"
                password "pw"
            }
            url "http://repo.mycompany.com"
        }
    mavenDeployer {
            repository(url: "file://localhost/tmp/myRepo/")
        }
}

repositories: 发布到本地目录

ivy: 发布到ivy仓库

mavenDeployer: 发布到maven仓库,主要需要使用maven插件