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集合中常用的属性打印
    5.1

二、插件添加的任务

5.2
5.3
5.4

三、多个构建工程

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/AndroidStudioProject/tree/master/Test1
  • CSDN:https://blog.csdn.net/weixin_44630050
  • 博客园:https://www.cnblogs.com/ruigege0000/
  • 欢迎关注微信公众号:傅里叶变换,个人账号,仅用于技术交流
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值