一、罕用的源集属性

apply plugin:'java'sourceSets {    main {        // 对main SourceSet进行配置    }}task custom65SourceSetTask {    sourceSets.all {        println "name:" + name        println "outputs.getFiles():" + outputs.getFiles()        println "outputs.class:" + outputs.class        println "outputs:" + outputs        println "java:" + java        println "java.getClass():" + java.getClass()        println "resources:" + resources        println "getResources():" + getResources()        println "=================================="    }}
  • 这面是SourceSet汇合中罕用的属性打印

    二、插件增加的工作



    三、多个构建工程

    include ':app'project(":app").projectDir = new File(rootDir, 'chapter2/app')include ':base'project(":base").projectDir = new File(rootDir, "chapter2/base")// 上面就是目录构造// -- chapter2// -- --app// -- -- --build.gradle// -- -- --src// -- --base// -- -- -- base.iml// -- -- -- builde.gradle// -- -- -- src
  • 配置好了构建文件,那么就去看一下具体的文件
  • 文件地址;app/build.gradle

    dependencies {  complie project(':base')}apply plugin:'java'
  • 能够应用上面的配置对所有的子项目进行配置

    subprojects {   apply plugin: 'java'  repositories {      mavenCentral()  }  dependencies {      testCompile 'junit:junit:4.12'  }}

    四、公布构建工程后果

    apply plugin:'java'task publishJar(type: Jar)artifacts {  archives publishJar}// 间接公布一个文件def publishFile = file('base/AndroidManifest.xml')artifacts {  archives publishFile}version '1.0.0' // 指定公布的版本号uploadArchives {  repositories {      flatDir {          name 'libs'          dirs "$projectDir/libs"      }  }}// 上面是上传到maven仓库中,在用户目录的.m2/repository中能够找到group 'org.flysnow.anroidgradlebook.example'version '1.0.0'uploadArchives {  repositories {      flatDir {          name 'libs'          dirs "$projectDir/libs"      }      mavenLocal()  }}// 上面是上传到公有的maven仓库中,这里以公司搭建的Nexus私服为例apply plugin:'maven'version '1.0.0'uploadArchives {  repositories {      flatDir {          name 'libs'          dirs "$projectDir/libs"      }      mavenLocal()      mavenDeployer {          repository(url: "http://repo.mycompany.com/nexus/content/repositories/releases") {              authentication(urerName: "username", password: "pwd")          }          snapshotRepository(url: "http://repo.mycompany.com/nexus/content/repositories/snapshots") {              authentication(userName: "username", password: "pwd")          }      }  }}

    五、生成Idea和Eclipse配置

    apply plugin:'java'apply plugin: 'idea'apply plugin: 'eclipse'

    六、android插件

    buildscript {  repositories {      jcenter()  }  dependencies {      classpath 'com.android.tools.build:gradle:1.5.0'  }}apply plugin: 'com.android.application'android {  compileSdkVersion 23  buildToolsVeresion "23.0.1"}
  • android{}是一个android提供的一个阔韩类型,能够自定义AndroidGradle工程,下面的buildscript会去jecenter上依照id进行查找插件,而后进行构建。

    七、一个残缺android构建工程脚本

    buildscript {  repositories {      jcenter()  }  dependencies {      classpath 'com.android.tools.build:gradle:3.1.4'  }}apply plugin: 'com.android.application'android {  compileSdkVersion 23  buildToolsVersion "23.0.1"  defaultConfig {      applicationId "org.flysnow.app.test"      minSdkVersion 14      targetSdkVersion 23      versionCode 1      versionName "1.0"  }  buildTypes {      release {          minifyEnabled false          proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'      }  }}dependencies {  compile fileTree(dir: 'libs', include: ['*.jar'])  testComplie 'junit:junit:4.12'  compile 'com.android.support:appcompat-v7:28.0.0'  compile 'com.android.support:design:23.0.0'}

    八、源码

  • gitee门路:https://gitee.com/dongqianrui...
  • CSDN:https://blog.csdn.net/weixin_...
  • 博客园:https://www.cnblogs.com/ruige...
  • 欢送关注微信公众号:傅里叶变换,集体账号,仅用于技术交换
本文由博客一文多发平台 OpenWrite 公布!