Gradle 提速几种方式

Gradle 提速几种方式,第1张

尽可能的使用最新版本的 Gradle 和 JVM,这是最简单直接的方式,Gradle 开发团队会持续的更新 Gradle 版本,来优化构建速度以及提供一些新的特性,而使用新版本的 JVM,是因为 Gradle 运行在 JVM 上,所以,如果新版本的 JVM 提升了性能,同样也会让 Gradle 跑的更快。

Parallel execution,并行执行 Gradle 的 tasks,在你的 gradle.properties 文件添加以下配置:

开启并行编译

//org.gradle.parallel=true

开启守护进程 通过开启守护进程,下一次构建的时候,将会连接这个守护进程进行构建,而不是重新fork一个gradle构建进程

org.gradle.daemon=true

//启用新的孵化模式

org.gradle.configureondemand=true

//开启 Gradle 缓存

org.gradle.caching = true

配置阶段

减少不必要的 apply plugin,按需使用。如果某个插件不是所有的模块都要使用的情况下,就不要使用 allprojects{} 的方式。

在配置阶段避免执行一些耗时的工作,比如 IO *** 作或者网络请求等

Daemon

在老版本的 Gradle 开启 Daemon 配置,而在 3.0 以后的 Gradle 版本是默认支持的。

调整 daemon’s 的堆大小,默认是 1 GB,如需调大,可在你的 gradle.properties 设置:

org.gradle.jvmargs=-Xmx2048M

使用 implementation 替代 compile,有效的减少编译时的依赖项,需升级至 Gradle 3.4 版本

增量编译,Gradle 可以将依赖关系分析到单个类级别,以便仅重新编译受更改影响的类。 增量编译是 Gradle 4.10 以来的默认编译。 在老的版本中,可以像这样激活它:

tasks.withType(JavaCompile) {

options.incremental = true

}

使用最新版本的工具

避免编译不必要的资源,比如不必要的语言本地化,

你可以只指定一种语言资源和屏幕适配,如以下示例所示:

android {

...

productFlavors {

dev {

...

// The following configuration limits the "dev" flavor to using

// English stringresources and xxhdpi screen-density resources.

resConfigs "en", "xxhdpi"

}

...

}

}

使用 WebP 格式的图片,有效减少图像文件大小,而不必执行构建时压缩,可以加快你的构建

关闭 PNG crunching,加快构建速度通过禁用自动图像压缩,Gradle 3.0 版本以上在 debug 的构建类型下是默认关闭的。如需手动配置其他构建类型,如下示例:

android {

buildTypes {

release {

// Disables PNG crunching for the release build type.

crunchPngs false

}

}

// If you're using an older version of the plugin, use the

// following:

// aaptOptions {

// cruncherEnabled false

// }

}

官方说明

官方说明

一、Gradle简介

Gradle 是以 Groovy 语言为基础,面向Java应用为主。基于DSL(领域特定语言)语法的自动化构建工具。

二、配置步骤如下:

1、资源下载:

Grandle官网下载Gradle

提示:如果只是运行可以只下载bin,为了扩展开发还是下载all。

2、下载完毕后,解压zip至安装目录即可,例如:D:\Program Files

3、设置环境变量,需要设置如下2个环境变量

1、添加GRADLE_HOME指向gradle的安装目录的根目录

GRADLE_HOME=D:\Program Files\gradle-2.0

2、Path变量添加gradle的bin目录

D:\Program Files\gradle-2.0\bin

4、以上步骤设置完毕,打开cmd,运行gradle -v看到gradle的版本信息,配置完成。

5.打开Eclipse,Help-->Install new software,输入http://dist.springsource.com/release/TOOLS/gradle

如果提示找不到地址,估计是被墙掉了,需要FQ。如果找得到地址,选择安装项,然后一直下一步,直到安装完毕,重启Eclipse即可。

6.创建一个web项目,在根目录下创建一个build.gradle文件

build.gradle文件内容如下:

import org.gradle.plugins.ide.eclipse.model.Facet

apply plugin: 'maven'

apply plugin: 'java'

apply plugin: 'war'

apply plugin: 'eclipse-wtp'

sourceCompatibility = 1.8   // 设置 JDK 版本

webAppDirName = 'WebContent'    // 设置 WebApp 根目录

sourceSets.main.java.srcDir 'src'   // 设置 Java 源码所在目录

// 设置 maven 库地址

repositories {

mavenCentral() // 中央库

maven { url 'http://localhost:8081/nexus/content/groups/public' } // 自定义库地址

}

// 设置依赖

dependencies {

providedCompile 'javax.servlet:servlet-api:2.5' // 编译期

providedRuntime 'javax.servlet:jstl:1.2'    // 运行时

}

// 设置 Project Facets

eclipse {

wtp {

facet {

facet name: 'jst.web', type: Facet.FacetType.fixed

facet name: 'wst.jsdt.web', type: Facet.FacetType.fixed

facet name: 'jst.java', type: Facet.FacetType.fixed

facet name: 'jst.web', version: '2.5'

facet name: 'jst.java', version: '1.8'

facet name: 'wst.jsdt.web', version: '1.0'

}

}

}

提示:项目有个G,正常情况下是没有的,需要右键项目 "Configure->Convert to Gradle Project..",稍等下就OK了,就能像我有这个图标G,

添加依赖包:需要右键项目"Gradle->Refresh All","Gradle->Dependency->Management".

8、可能报错

Unable to start the daemon process.

This problem might be caused by incorrect configuration of the daemon.

For example, an unrecognized jvm option is used.

Please refer to the user guide chapter on the daemon at http://gradle.org/docs/2.2.1/userguide/gradle_daemon.html

Please read the following process output to find out more:

-----------------------

Error occurred during initialization of VM

Could not reserve enough space for object heap

Error: Could not create the Java Virtual Machine.

Error: A fatal exception has occurred. Program will exit.

Could not fetch model of type 'HierarchicalEclipseProject' using Gradle distribution 'https://services.gradle.org/distributions/gradle-2.2.1-bin.zip'.

解决方法

1、定位到目录 C:\Users\<username>\.gradle

2、创建文件gradle.properties

内容:org.gradle.jvmargs=-Xmx512m

3、重启你的Android Studio项目,即可。

9、设置gradle下jar包的保存地址, "window->preferences->gradle",如下:

用gradle构建时,常有需要去查看其网络请求,怎样抓取其网络请求呢?下面介绍gradle代理到charles上的抓包办法。

由于gradle是运行在jvm上,所以配置jvm的代理方法,即是实现了对gradle的代理,代理设置分为步:

在gradle上设置jvm的代理有两种方式

gradle在运行时自动会将属性设置加载到jvm中。

代理设置完成后,发现http请求是可以在charles中正常代理查看的,但https请求却无法代理成功。原因是jvm上https的ssl握手环节证书验证不通过。由于Charles是以中间人的方式代理https请求,所以需要将charles的证书添加到jvm信任证书的列表中去。

java工具包中集成了证书管理工具keytool,只需要用它将代理工具的证书(charles证书)导入到jvm证书信任列表中即可。

导入方法:

JAVA_HOME是系统的java的安装目录。

jvm证书仓库的默认密码是“changeit”,如果修改过,请用重设的密码替换它。

certAliasName 是你给导入的证书起的名字。

certPath.cert 是导入的证书路径


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11366010.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存