一、常用的源集属性
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 发布!
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。