zhaoyu@home:~$

gradle-java构建入门

java插件

java 插件为工程定义了许多默认值,如Java源文件位置。如果你遵循这些默认规则,那么你无需在你的脚本文件中书写太多代码。当然, Gradle 也允许你自定义项目中的一些规则。 使用java插件在脚本中添加如下代码:

plugins {
    id 'java'
}

构建

  • 构建项目
    gradle build
    
  • clean 删除 build 目录以及所有构建完成的文件。
  • assemble 编译并打包 jar 文件,但不会执行单元测试。一些其他插件可能会增强这个任务的功能。例如,如果采用了 War 插件,这个任务便会为你的 项目打出 War 包。
  • check 编译并测试代码。一些其他插件也可能会增强这个任务的功能。例如,如果采用了 Code-quality 插件,这个任务会额外执行 Checkstyle。

外部依赖

  • 定义maven仓库
    repositories {
      mavenCentral()
      jcenter()
        
      maven {
          url 'https://repo.spring.io/libs-milestone'
      }
    
      maven {
          url "${project.rootDir}/build/repo"
      }
    }
    
  • 添加依赖
    dependencies {
      compile project(":common-swagger")
      compile group: 'commons-collections', name: 'commons-collections', version: '3.2'
      testCompile group: 'junit', name: 'junit', version: '4.+'
    }
    
  • 自定义MANIFEST.MF
    sourceCompatibility = 1.5
    version = '1.0'
    jar {
      manifest {
          attributes 'Implementation-Title': 'Gradle Quickstart', 'Implementation-Version': version
      }
    }
    
  • 发布jar包 将jar包发布到某个仓库中:
    uploadArchives {
      repositories {
         flatDir {
             dirs 'repos'
         }
      }
    }
    

多项目配置

定义一个如下结构的多项目结构:

parentproject/
  api/
  services/webservice/
  shared/

parentproject为多项目机构,下面包括了3个项目api、services/webservice、shared。shared是api和webservice公用的项目。多项目需要 在根项目目录中创建一个配置文件settings.gradle:

include "shared", "api", "services:webservice", "services:shared"

对多项目构建而言,总有一些共同的配置.在本例中,我们会在根项目上采用配置注入的方式定义一些公共配置。

subprojects {
    plugins {
        id 'java'
        id 'eclipse-wtp'
    }
    
    sourceCompatibility = '1.8'
    targetCompatibility = '1.8'
    
    repositories {
       mavenCentral()
    }
}

上面我们为每个子项目应用了java插件,我们可以在根项目目录进行编译,测试,打包等所有操作。