乐趣区

关于android:Gradle连载5多个构建工程以及android工程配置

一、罕用的源集属性

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 公布!

退出移动版