一、常用的源集属性
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路径:gitee.com/dongqianrui…
- CSDN:blog.csdn.net/weixin_4463…
- 博客园:www.cnblogs.com/ruigege0000…
- 欢迎关注微信公众号:傅里叶变换,个人账号,仅用于技术交流
本文由博客一文多发平台 OpenWrite 发布!