实时搜索: gradle 是什么

gradle 是什么

484条评论 4808人喜欢 6664次阅读 677人点赞
刚进入公司,看人家都用的Spring Cloud框架,我一脸蒙,以前培训学的是SSM,maven项目。现在人家用Gradle项目,搞得我很蒙我以前学的几乎用不上了,求大神分析 ...

android studio compile filetree什么意思: 说实话 开始接触这个工具 真的觉得很恶心 毕竟大陆被墙 很多东西用起来不是很方便 而且Eclipse转到Android Studio还是一个跨度 废话不多说 下面 讲下我遇到的问题
1. 安装的时候(Setup Wizard - Download Components) 这个要下载很长时间 甚至下载不了 (PS: 这个选择并下载2.25G的组件是studio的一个bug,评论里有人提醒,感谢这位同学。如果网速不行想跳过这步的可以在bin目录的idea.properties增加一行:disable.android.first.run=true就行了,mac平台的右键安装包->Show Package Contents 就找到bin目录了。)

2.新建项目成功后会下载Gradle,貌似这个过程不翻墙也是可以下载,但是访问特别慢,建议翻墙下载。那么下载的Gradle到什么地方呢? 打开C:\Users\Administrator\.gradle\wrapper\dists\gradle-1.10-all\d90a2yjknzzhpcfgm937zpcte 你会看到需要的gradle版本 例如我的是gradle-1.10 我会去百度上搜这个下载 一大堆 下载之后把gradle-1.10-all.zip复制到此目录下(C:\Users\Administrator\.gradle\wrapper\dists\gradle-1.10-all\d90a2yjknzzhpcfgm937zpcte)

注:如果是导入一个项目一直处于Building 那么去修改项目Gradle目录下的gradle-wrapper.properties 文件里边的distributionUrl 最后边改成已经下载的gradle版本例如 我已经有gradle-2.2.1-all.zip 但是没有gradle-2.4-all.zip的 所以我会改成distributionUrl=https\://services.gradle.org/distributions/gradle-2.2.1-all.zip

如果导入项目之后 下载Android studio那么结束掉任务 去修改项目根目录下的build.gradle
改成你现在的版本
dependencies {
classpath 'com.android.tools.build:gradle:1.2.2'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}

3. 关于build.gradle的配置:
主工程app:
apply plugin: 'com.android.application' 表示申明此工程为主工程

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar']) 默认不需要多解释
compile project(':StudioKlowerBase')} 申明主工程依赖的Library 注意拼写规则, 名字要与你的Library名字一样

buildTypes {
release {
minifyEnabled true(表示打包签名的时候 是正式包 会执行混淆代码)
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
定义代码混淆文件 注意:proguard-rules.pro要放在主工程的目录下
}
}
完整代码如下:

[java] view plain copy
apply plugin: 'com.android.application'

android {
compileSdkVersion 19
buildToolsVersion "19.1.0"

defaultConfig {
applicationId "com.klowerbase.test"
minSdkVersion 11
targetSdkVersion 19
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])

compile project(':StudioKlowerBase')
}

--Library 工程的配置apply plugin: 'android-library'定义为Library
dependencies {
classpath 'com.android.tools.build:gradle:1.2.2' 定义编译的gradle版本
}
完整代码如下:
[java] view plain copy
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.2.2'
}
}
apply plugin: 'android-library'

dependencies {
compile fileTree(include: '*.jar', dir: 'libs')
}

android {
compileSdkVersion 19
buildToolsVersion "19.1.0"

sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
aidl.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
}

// Move the tests to tests/java, tests/res, etc...
instrumentTest.setRoot('tests')

// Move the build types to build-types/<type>
// For instance, build-types/debug/java, build-types/debug/AndroidManifest.xml, ...
// This moves them out of them default location under src/<type>/... which would
// conflict with src/ being used by the main source set.
// Adding new build types or product flavors should be accompanied
// by a similar customization.
debug.setRoot('build-types/debug')
release.setRoot('build-types/release')
}
}

项目的配置 代码如下
[java] view plain copy
// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.2.2'

// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}

allprojects {
repositories {
jcenter()
}
}
[java] view plain copy

[java] view plain copy
解决Task '' not found in root project '***'.
方法1:删掉.iml里的<component name="FacetManager"> ... </component>
方法2:删掉.iml跟.idea文件夹 重新导入程序
经过实验:第二种方法 有效
由于我用的gradle-2.2.1 项目结构有些变化,如下截图:
[java] view plain copy
<img src="/img/aHR0cDovL2ltZy5ibG9nLmNzZG4ubmV0LzIwMTUwNzIwMTMwMDUxMTIwP3dhdGVybWFyay8yL3RleHQvYUhSMGNEb3ZMMkpzYjJjdVkzTmtiaTV1WlhRdi9mb250LzVhNkw1TDJUL2ZvbnRzaXplLzQwMC9maWxsL0kwSkJRa0ZDTUE9PS9kaXNzb2x2ZS83MC9ncmF2aXR5L0NlbnRlcg==" alt="" />

最后在附上一些常用的快捷键:Ctrl+Alt+L 格式化代码Ctrl+Alt+space 代码提示Ctrl+Alt+O 优化导入的类和包Alt+Insert 生成代码(如get,set方法,构造函数等)Ctrl+Shift+Space 自动补全代码Ctrl+空格 代码提示
Ctrl+R 替换Ctrl+Y 删除行(ctrl+x不是删除行,是剪切。如果不选中,则为剪切当行。ths for 貌似掉线)
Ctrl+D 复制行
Ctrl+/ 或 Ctrl+Shift+/ 注释(// 或者/*...*/ )

eclipse怎么配置gradle: 1,首先当然是到官网gradle.org下载最新的gradle版本了
2,下载完成后,放到任意的位置,我的是在D:/gradle-1.1,然后需要放到换进配置,步骤是右键“计算机”-“属性”,进入“高级配置”,选择“环境变量”,点击”新建“,配置”GRADLE_HOME“
3,选择“path”,进行修改,加入“;%GRADLE_HOME%\bin”,注意此处没有引号,记得前面要加分号,这样就配置好gradle的环境变量了
4,在命令窗口输入”gradle -version“,进行验证,出现以下提示则表示成功
5,接下来是构建一个java项目,可以随便建一个文件夹,如:D:\javapro1,按照gradle的规约新建相应的文件目录,类似于maven的一样
6,最主要的是在该目录下新建一个gradle文件,build.gradle,文件内容只要一句话即可:
apply plugin:'java'
7,在命令窗口中,进入项目对应文件夹,输入gradle build,即可完成构建,然后可以在项目文件夹中发现多了一些构建完的文件,这时就完成了一个最简单的项目构建

怎么在build.gradle中控件是否为debug: build.gradle

//设置脚本的运行环境
buildscript {
//支持java 依赖库管理(maven/ivy),用于项目的依赖。
repositories {
mavenCentral()
}
//依赖包的定义。支持maven/ivy,远程,本地库,也支持单文件
dependencies {
classpath 'com.android.tools.build:gradle:0.4'
}
}
//声明构建的项目类型,这里当然是android了
apply plugin: 'android'
//设置编译android项目的参数
android {
compileSdkVersion 17
buildToolsVersion "17"

defaultConfig {
minSdkVersion 8
targetSdkVersion 17
}
//Android默认配置
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
aidl.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
}
//测试所在的路径,这里假设是tests文件夹,没有可以不写这一行
instrumentTest.setRoot('tests')
}

//这个是解决lint报错的代码
lintOptions {
abortOnError false
}
/**
* 签名设置
*/
signingConfigs {
myConfigs {
storeFile file("签名文件地址")
keyAlias "..."
keyPassword "..."
storePassword "..."
}
}
/**
* 混淆设置
*/
buildTypes {
release {
signingConfig signingConfigs.myConfigs
runProguard true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
/**
* 渠道打包(不同包名)
*/
productFlavors {
{
applicationId = '包名'
}
hhhhh {
applicationId='包名'
}
}
}
/**
* .so文件的导入
*/
task copyNativeLibs(type: Copy) {
from fileTree(dir: 'libs', include: 'armeabi/*.so') into 'build/lib'
}

tasks.withType(Compile) {
options.encoding = "UTF-8"
}

tasks.withType(Compile) {
compileTask -> compileTask.dependsOn copyNativeLibs
}
clean.dependsOn 'cleanCopyNativeLibs'
tasks.withType(com.android.build.gradle.tasks.PackageApplication) { pkgTask ->
pkgTask.jniFolders = [new File(buildDir, 'lib')]
}
//依赖库
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
}
gradle 作为构建工具,能够很方便的使用本地jar包,以下为使用的代码块。
ependencies {
//单文件依赖
compile files('libs/android-support-v4.jar')
//某个文件夹下面全部依赖
compile fileTree(dir: 'libs', include: '*.jar')
}

android {

}
gradle 同时支持maven,ivy,由于ivy我没用过,所以用maven 作为例子,以下为代码块:
repositories {
//从中央库里面获取依赖
mavenCentral()
//或者使用指定的本地maven 库
maven{
url "file://F:/githubrepo/releases"
}
//或者使用指定的远程maven库
maven{
url "远程库地址"
}
}

dependencies {
//应用格式: packageName:artifactId:version
compile 'com.google.android:support-v4:r13'}

android {

}
对于项目依赖 android library的话,就不是依赖一个jar,那么简单了,在这里需要使用gradle mulit project 机制。在过去,android library并没有一个很好的包管理方式,简单来说,在gradle出现以前,官方并没有一种用于管理android library 依赖包的方式,一般我们都是直接下载别人的android library project 源码进行集成,而对于第三方的android-maven-plugin 用的是apklib 格式。
而现在,官方终于推出一种android library的打包格式,扩展名为*.aar。前面提到,目前android gradle插件并不支持本地直接使用*.aar文件,不过,支持包管理库的引用方式,下面,我为大家说一下,怎么对android library 发布使用。
打包android library
对android library 进行打包直接在library项目下面使用gradle build 即可,然后,你就会在 build/libs 目录下看到两个*.aar文件,一个debug包用的,一个是release 下用的,看个人需求使用,这里我们用的是release 版本的 .aar 文件。

求助,Spring Cloud是什么?还有Gradle: Spring Cloud是一些东西的集合,基础是Spring Boot,学过Spring MVC应该比较好入门。
Gradle是一个构建工具,跟Maven类似,你可以把它当做另一种用法的Maven就行了。

android studio gradle怎么改低: 在gradle-wrapper.properties里修改distributionUrl

'cancel'to manually set the path of a local gradle distribution,什么意思:

cancel'to manually set the path of a local gradle distribution

取消“手动设置局部分布的路径工具

gradle和ant等构建工具有什么核心优势: 新建一下TXT文件,如果只是运行build.xml文件,那可以这样写start 绝对路径\build.xml绝对路径就是build.xml文件所放的地方,比如放在D:\PROGRAMES\那就是start d:\programes\build.xml写好了后,把TXT文件的扩展名直接改成BAT就是了。不知你说的是不是这个样子

gradle与eclipse有什么不同: eclipse是软件开发工具,gradle是代码组织工具,两个作用都不一样。

  • l排痰背心多少钱

    suan cai是什么组词: 你是想问 酸菜吗? ...

    721条评论 5017人喜欢 4222次阅读 359人点赞
  • 2017哪几个银行涨额快

    where.can.you.buy.the.medicine.是什么意思?: 你在哪儿能够买到药? ...

    490条评论 6489人喜欢 5904次阅读 753人点赞
  • mz是什么

    免疫组化cd56(十十十)vti(++)EMA(-)caIretinin(+)是什么意思?: 这些免疫组化的项目是协助病理分型的,鳞癌,腺癌或是其他,是否化疗要根据病人的术后分期,术中所见,切除是否干净,局部淋巴结清扫情况等,不是根据这个。 建议你可以把大病理的结果说一下,除非分期很早,一般有症状了,都不会是...

    416条评论 3187人喜欢 5124次阅读 624人点赞
  • 32的腰围是多少尺码

    越文Cua Khau Quoc Te Lao Cai是什么意思?: 分别是:边境大门该中心的 ...

    205条评论 3483人喜欢 1445次阅读 662人点赞
  • excel如何复制格式

    cai verzi pe pereto 英语是什么意思?: 这是一首歌名,演唱者是罗马尼亚著名艺人 Smiley, 他是歌手、词作家、作曲家、专辑制作人。cai verzi pe pereti (最后一个字母是i,不是 o)翻译成英文是 Wild Goose Chase, 意...

    270条评论 2618人喜欢 6514次阅读 948人点赞
  • dnf能源中心怎么去

    CAI9-9是什么医学术语: 肿瘤相关糖类抗原 ...

    604条评论 1955人喜欢 3191次阅读 494人点赞