导航:首页 > 源码编译 > gradle编译jvm设置

gradle编译jvm设置

发布时间:2022-10-19 06:48:26

‘壹’ android Studio编译慢、卡死和狂占内存怎么破

在2020年,仍然使用2g内存的电脑,你可以改变职业。没有合适的设备,什么都没用。Android Studio是内存,设备烂卡死不可避免,要解决卡的问题,一定要升级硬件设备。另一些人则说,对修辞学的回答相当有力,在一定程度上,加快编译的速度,却不能解决卡死的问题,没有人能解释为什么会加快编译的速度。

至于加快编译,有一种方法,我认为一些主要适用性的答案并不强,实际上应该从gradle开始,什么不是正确的地方,也请轻喷,有什么问题可以留个信息。

我谈到了下面的所有步骤,建议在最后进行。在终端编译中有很多好处:

能观察整个编译过程,帮助理解层次构建过程;

可以看出哪些任务在编译过程中耗费时间,可以较慢地编写出适合的补救方案;

可以终止编译,如果在某个阶段被卡住,CTRL + c终止编译,Android也会终止在Studio中编译,但基本上九次会失败;

因为它最终会对Android Studio产生影响,基本不会导致Android Studio caton;不满足Android工作室的各种bug ?

最后,为什么要减少设置中模块的数量。Gradle实际上可以加速编译,但是有很多限制?

首先,我们认为编译过程,首先解析gradle配置,设置任务依赖于有向图,然后执行每个任务的模块,如果我们通过maven的依赖关系,使用模块的aar(单android库),如果我们想要改变文件在这个模块,不要再次修改上传下载,每次都是很好,但是有一个致命的问题:不修改版本号,快照通常不是做的想法。这可能导致一些不会生效的变化,并且需要时间来解决这个问题。但是,有一种方法可以在一定程度上解决这个问题,并添加以下脚本:

项目。配置。所有(新操作<配置> ({@ Overridevoidexecute(配置文件){文件)。ResolutionStrategy。TimeUnit CacheDynamicVersionsFor(5。分钟)

文件。ResolutionStrategy。TimeUnit CacheChangingMolesFor(0。秒)} })

有人会问,插件,每个人都要开发一个模块,对于每个模块的维护都要打包到maven,每次我修改,甚至很小的改动,也要做一个上传,就会遇到快照不做同样的问题。嘿,嘿,这个问题,我们公司有一个等级插件,已经解决了,至于解决方案,是公司机密,我不会说。

一件事,我相信大多数开发人员共同发展是单一模块,该模块的情况并不多,所以最基本的也是依赖aar或罐子里,并不存在所谓的图书馆aar上传,所以一些答案的耶和华说并不意味着什么,这就是为什么我说影响编译速度的情况主要集中在它的生命周期的第三阶段,第三阶段的优化,看到我的答案。

‘贰’ eclipse怎么配置gradle

一、Gradle简介

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

二、配置步骤如下:

1、资源下载:

Grandle官网下载Gradle

‘叁’ gradle配置不成功,求助贴

近项目遇蛮烦问题Maven约定标准Java项目代码结构:
project
--src
--main
--java
--resources
--test
--java
--resources

‘gradle idea’构建intelliJ项目文件自帮忙设置所Source RootTest Source Root我工作部门我希望测试unitintg2类别更加容易区测试目同提供Build Pipeline别运行同类别测试能力我部门内标准Java项目结构:
project
--src
--main
--java
--resources
--test
--common
--java
--unit
--java
--resources
--intg
--java
--resources

目录结构我剩2问题要解决:
1. 何区运行IntegrationTestUnit Test
2. 何保证‘gradle idea’需重新设置Test Source Rootgradle具备识别新代码结构能力

何写Gradle Plugin

语言:
JavaGroovyScala都推荐用Groovy,毕竟Gradle本质说用Groovy写DSL使用Groovy更致点

注入式:
Gradle支持3种形式定制Plugin注入:

1. 直接Plugin源代码直接写Build Script面
2. Pluigin源代码写rootProjectDir/buildSrc/src/main/groovy目录
3. 用单独project写Plugin源代码jar依赖形式注入项目

觉都想要自写Plugin定项目公用Plugin否则直接Plugin代码直接写脚本要定制Plugin我看定需要单独jar形式注入

写project-structure Plugin:
Gradle写Plugin非简单首先添加项目依赖我使用Groovy写插件所添加localGroovy依赖

Gradle代码
apply plugin: 'groovy'

dependencies {
compile gradleApi()
compile localGroovy()
}

写Plugin实现代码实现代码需要实现Plugin接口即我实现代码做两件事定制项目代码结构二添加integrationTest Task该Task运行*IntegrationTest.class, Build Pipeline阶段运行Unit TestIntegrationTest

Groovy代码
import org.gradle.api.Plugin
import org.gradle.api.Project
import org.gradle.api.tasks.testing.Test

class ProjectStructurePlugin implements Plugin {
@Override
void apply(Project project) {
project.logger.info "Configuring Project Structure for $project.name"

project.configurations {
integrationTestCompile { extendsFrom testCompile }
integrationTestRuntime { extendsFrom integrationTestCompile, testRuntime }
}
configureSourceSets(project)
addIntegrationTestTask(project)
}

private void addIntegrationTestTask(Project project) {
Test intgTest = project.getTasks().create("integrationTest", Test.class);
intgTest.testClassesDir = project.sourceSets.integrationTest.output.classesDir
intgTest.includes = ["**/*IntegrationTest.class"]
intgTest.inputs.dir 'src'
intgTest.outputs.dir project.sourceSets.integrationTest.output.classesDir
project.check.dependsOn project.integrationTest
intgTest.dependsOn project.test
}

private void configureSourceSets(Project project) {
project.sourceSets {
test {
java {
srcDir 'src/test/unit/java'
srcDir 'src/test/common/java'
}
resources {
srcDir 'src/test/unit/resources'
}
}

integrationTest {
java {
srcDir 'src/test/intg/java'
srcDir 'src/test/common/java'
}
resources {
srcDir 'src/test/intg/resources'
}
compileClasspath = project.sourceSets.main.output + project.sourceSets.test.output + project.configurations.integrationTestCompile
runtimeClasspath = output + compileClasspath + project.configurations.integrationTestRuntime
}
}
}
}

接着项目src/main/resources/META-INF/gradle-plugins目录创建文件:.properties,该文件指定Plugin实现类:

Java代码
implementation-class=com.xianlinbox.plugins.ProjectStructurePlugin

项目使用该Plugin
首先需要build.gradle脚本引入该Pluginjar包依赖文件形式更推荐jar包发布Maven库Maven依赖形式注入本例使用本文件依赖:

Groovy代码
buildscript {
dependencies {
classpath fileTree(dir: 'libs', include: '*.jar')
}
}
注入编写插件注意该插件必须java plugin起使用其使用SourceSets属性该插件引入进:

Groovy代码
apply plugin: 'java'
apply plugin: 'project-structure'

插件通‘gradle test’‘gradle integrationtTest’区别运行UnitTestIntrgrationTest

解决自设置Test Source Root问题需要build.gradleideaMole Task增加识别Test Source Root能力即:

Groovy代码
apply plugin: 'idea'
...
idea {
mole {
testSourceDirs += file('src/test/intg/java')
testSourceDirs += file('src/test/intg/resources')
}
}

我写Plugin设置Project-Structrue:

Groovy代码
......
compileClasspath = project.sourceSets.main.output + project.sourceSets.test.output + project.configurations.integrationTestCompile
runtimeClasspath = output + compileClasspath + project.configurations.integrationTestRuntime
project.idea {
mole {
testSourceDirs = testSourceDirs + new File('src/test/intg/java') + new File('src/test/intg/resources')
}
}
1、安装
Gradle安装Maven便需要载( )==》解压==》配置环境变量(GRADLE_HOME & PATH)配置环境变量记使用 source命令使新环境变量效配置功命令行通 gradle -v"验证否安装功

2、Gradle编译Maven风格java项目
首先项目根目录创建"build.gradle"文件编译java项目需要使用gradlejava插件
Groovy代码
apply plugin: 'java'
,要集maven功能需要添加maven插件
Groovy代码
apply plugin: 'maven'[

接着配置项目Repository风格
Groovy代码
repositories{
mavenCentral();
}
面例使用默认maven央库想用自本库通式配置
Groovy代码
def localMavenRepo = 'file://' + new File(System.getProperty('user.home'), '.m2/repository').absolutePath
repositories {
// Use local Maven repo location. We don't need this if we only want to install
// an artifact, but we do need it if we want to use dependencies from the local
// repository.
mavenRepo urls: localMavenRepo
mavenCentral()
}

再配置项目依赖第三库配置模板:
Groovy代码
dependencies{
compile group: '',name:'',version:''
}
举例假设项目依赖4.10版本junit配置
Groovy代码
compile group: 'junit',name:'junit',version:'4.10'
另外Depencies按式简写
Groovy代码
compile '::'

Groovy代码
compile 'junit:junit:4.10'

何自项目发布Repository
Groovy代码
uploadArchives {
repositories {
mavenDeployer {
repository(url: "file://localhost/tmp/myRepo/")
}
}

‘肆’ 如何实现 Gradle 工程上的增量编译

到此 NDK的配置完成,开始进行 fresco的编译 1.首先从github上下载项目 2.将项目导入到Android Studio中: 选择 Open an exsiting Android Studio Project 选择文件夹下的 build.gradle文件

‘伍’ minecraft我的世界gradle构建,总是失败,求告诉详细教程。不要发网址,要会的人。不会的

最近在项目中遇到一个不大,但是还蛮烦人的问题,在Maven的约定中,一个标准Java项目的代码结构如下:
project
--src
--main
--java
--resources
--test
--java
--resources

当‘gradle idea’构建intelliJ项目文件时,会自动帮忙设置好所有的Source Root,Test Source Root。但是,在我工作的部门中,我们希望可以把测试分为unit,intg2个类别,这样可以更加容易区分测试的目的,同时提供了Build Pipeline分别运行不同类别测试的能力。因此,我们部门内的标准Java项目结构如下:
project
--src
--main
--java
--resources
--test
--common
--java
--unit
--java
--resources
--intg
--java
--resources

有了这个目录结构之后我们剩下2个问题要解决:
1. 如何区分运行IntegrationTest和Unit Test
2. 如何保证‘gradle idea’以后,无需重新设置Test Source Root。因为gradle不具备识别新的代码结构的能力。

如何写一个Gradle Plugin

语言:
Java,Groovy,Scala都可,推荐用Groovy,毕竟Gradle本质上来说就是一个用Groovy写的DSL,使用Groovy可以更一致一点。

注入方式:
Gradle支持3种形式的定制Plugin注入:

1. 直接把Plugin源代码直接写在Build Script里面。
2. 把Pluigin源代码写到rootProjectDir/buildSrc/src/main/groovy目录下
3. 用一个单独的project来写Plugin源代码,然后以jar依赖的形式注入项目。

个人觉得,都想到要自己写一个Plugin了,那么一定是有多个项目公用这个Plugin了,否则的话,直接把Plugin的代码直接写到脚本里就好了。因此,要定制Plugin,在我看来,一定是需要以一个单独的jar形式注入的。

写project-structure Plugin:
在Gradle中,写一个Plugin非常简单,首先,添加项目依赖,我使用Groovy来写插件,所以添加了localGroovy依赖。

Gradle代码
apply plugin: 'groovy'

dependencies {
compile gradleApi()
compile localGroovy()
}

然后写Plugin的实现代码,实现代码只需要实现Plugin<Project>接口即可,在我的实现代码中,做了两件事,一是定制了项目的代码结构,二是添加了integrationTest Task,该Task只运行*IntegrationTest.class, 这样可以在Build Pipeline分阶段运行Unit Test和IntegrationTest。

Groovy代码
import org.gradle.api.Plugin
import org.gradle.api.Project
import org.gradle.api.tasks.testing.Test

class ProjectStructurePlugin implements Plugin<Project> {
@Override
void apply(Project project) {
project.logger.info "Configuring Project Structure for $project.name"

project.configurations {
integrationTestCompile { extendsFrom testCompile }
integrationTestRuntime { extendsFrom integrationTestCompile, testRuntime }
}
configureSourceSets(project)
addIntegrationTestTask(project)
}

private void addIntegrationTestTask(Project project) {
Test intgTest = project.getTasks().create("integrationTest", Test.class);
intgTest.testClassesDir = project.sourceSets.integrationTest.output.classesDir
intgTest.includes = ["**/*IntegrationTest.class"]
intgTest.inputs.dir 'src'
intgTest.outputs.dir project.sourceSets.integrationTest.output.classesDir
project.check.dependsOn project.integrationTest
intgTest.dependsOn project.test
}

private void configureSourceSets(Project project) {
project.sourceSets {
test {
java {
srcDir 'src/test/unit/java'
srcDir 'src/test/common/java'
}
resources {
srcDir 'src/test/unit/resources'
}
}

integrationTest {
java {
srcDir 'src/test/intg/java'
srcDir 'src/test/common/java'
}
resources {
srcDir 'src/test/intg/resources'
}
compileClasspath = project.sourceSets.main.output + project.sourceSets.test.output + project.configurations.integrationTestCompile
runtimeClasspath = output + compileClasspath + project.configurations.integrationTestRuntime
}
}
}
}

接着,在项目的src/main/resources/META-INF/gradle-plugins目录下,创建一个文件:<plugin-name>.properties,在该文件中指定Plugin的实现类:

Java代码
implementation-class=com.xianlinbox.plugins.ProjectStructurePlugin

在项目中使用该Plugin
首先,需要在build.gradle脚本中引入该Plugin的jar包依赖,可以是以文件的形式,当然个人更推荐的是把jar包发布到Maven库中,以Maven依赖的形式的注入,本例中使用的是本地文件依赖:

Groovy代码
buildscript {
dependencies {
classpath fileTree(dir: 'libs', include: '*.jar')
}
}
然后,注入编写的插件,注意,该插件必须和java plugin一起使用,因为其中使用到SourceSets属性是从该插件中引入进来的:

Groovy代码
apply plugin: 'java'
apply plugin: 'project-structure'

有了这个插件之后,就可以通过‘gradle test’和‘gradle integrationtTest’区别运行UnitTest和IntrgrationTest了。

最后,解决自动设置Test Source Root的问题,只需要在build.gradle为ideaMole Task增加识别Test Source Root的能力即可:

Groovy代码
apply plugin: 'idea'
...
idea {
mole {
testSourceDirs += file('src/test/intg/java')
testSourceDirs += file('src/test/intg/resources')
}
}

当然,我们也可以把它写到Plugin中去,在设置为Project-Structrue之后:

Groovy代码
......
compileClasspath = project.sourceSets.main.output + project.sourceSets.test.output + project.configurations.integrationTestCompile
runtimeClasspath = output + compileClasspath + project.configurations.integrationTestRuntime
project.idea {
mole {
testSourceDirs = testSourceDirs + new File('src/test/intg/java') + new File('src/test/intg/resources')
}
}
1、安装
Gradle安装和Maven一样方便,只需要,下载(http://www.gradle.org/downloads )==》解压==》配置环境变量(GRADLE_HOME & PATH),配置好环境变量之后记得使用 source命令使新的环境变量生效。配置成功之后,可以在命令行通过 “gradle -v"验证是否安装成功。

2、Gradle编译Maven风格的java项目
首先,在项目根目录创建"build.gradle"文件,编译java项目需要使用gradle的java插件
Groovy代码
apply plugin: 'java'
,因为要集成maven的功能,需要添加maven插件
Groovy代码
apply plugin: 'maven'[

接着,配置项目的Repository,风格如下
Groovy代码
repositories{
mavenCentral();
}
,上面例子使用的是默认的maven的中央库,如果想用自己的本地库,可通过如下方式配置
Groovy代码
def localMavenRepo = 'file://' + new File(System.getProperty('user.home'), '.m2/repository').absolutePath
repositories {
// Use local Maven repo location. We don't need this if we only want to install
// an artifact, but we do need it if we want to use dependencies from the local
// repository.
mavenRepo urls: localMavenRepo
mavenCentral()
}

再然后,配置项目依赖的第三方库,配置模板如下:
Groovy代码
dependencies{
compile group: '<group-id>',name:'<artifact-id>',version:'<version>'
}
,举个例子,假设项目依赖了4.10版本的junit,那么配置就是
Groovy代码
compile group: 'junit',name:'junit',version:'4.10'
另外Depencies还可以按如下方式简写
Groovy代码
compile '<group-id>:<artifact-id>:<version>'
例子
Groovy代码
compile 'junit:junit:4.10'

最后,如何把自己的项目发布到Repository中,
Groovy代码
uploadArchives {
repositories {
mavenDeployer {
repository(url: "file://localhost/tmp/myRepo/")
}
}

‘陆’ gradle里面怎么配置java版本

配置Gradle运行环境的方法 到Gradle官网,下载Gradle安装包。 选择“Complete distribution (binaries, sources and offline documentation)” 解压缩到本地目录 配置GRADLE_HOME的环境变量 将%GRADLE_HOME%/bin配置到PATH中

‘柒’ Android 开发,Android Studio编译慢,卡死和狂占内存怎么破

已经使用Android Studio进行开发超过一年,随着项目的增大,依赖库的增多,构建速度越来越慢,现在最慢要6分钟才能build一个release的安装包,在网上查找资料,发现可以通过一些配置可以加快速度,这里跟大家分享一下。
开启gradle单独的守护进程
在下面的目录下面创建gradle.properties文件:
/home/<username>/.gradle/ (Linux)
/Users/<username>/.gradle/ (Mac)
C:\Users\<username>\.gradle (Windows)
并在文件中增加:
org.gradle.daemon=true

同时修改项目下的gradle.properties文件也可以优化:
# Project-wide Gradle settings.
# IDE (e.g. Android Studio) users:
# Settings specified in this file will override any Gradle settings
# configured through the IDE.
# For more details on how to configure your build environment visit
# http://www.gradle.org/docs/current/userguide/build_environment.html
# The Gradle daemon aims to improve the startup and execution time of Gradle.
# When set to true the Gradle daemon is to run the build.
# TODO: disable daemon on CI, since builds should be clean and reliable on servers
org.gradle.daemon=true
# Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings.
# Default value: -Xmx10248m -XX:MaxPermSize=256m
org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
# When configured, Gradle will run in incubating parallel mode.
# This option should only be used with decoupled projects. More details, visit
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
org.gradle.parallel=true
# Enables new incubating mode that makes Gradle selective when configuring projects.
# Only relevant projects are configured which results in faster builds for large multi-projects.
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:configuration_on_demand
org.gradle.configureondemand=true

同时上面的这些参数也可以配置到前面的用户目录下的gradle.properties文件里,那样就不是针对一个项目生效,而是针对所有项目生效。
上面的配置文件主要就是做, 增大gradle运行的java虚拟机的大小,让gradle在编译的时候使用独立进程,让gradle可以平行的运行。
修改android studio配置
在android studio的配置中,开启offline模式,以及修改配置。实际上的配置和上面的一大段一样,主要是在这个地方配置的只会在ide构建的时候生效,命令行构建不会生效。

命令行构建
基于上面的配置,命令行构建时在命令后面加上这个参数即可 --daemon --parallel --offline。
引入依赖库时使用aar
使用网上第三方的依赖库时尽量使用aar,可以在mavenhttp://gradleplease.appspot.com/或者githuhttps://github.com/Goddchen/mvn-repo搜索。
自己的库模块也可以打包成aar,关于这个可以参考stormzhang的文章http://www.stormzhang.com/android/2015/03/01/android-reference-local-aar/。

‘捌’ 求教吧内大神一个内网服务器使用gradle编译的问题

1,打开“控制面板”,然后单击启动“添加/删除程序”,在弹出的对话框中选择“添加/删除Windows组件”,在Windows组件向导对话框中选中“Internet信息服务(IIS)”,然后单击“下一步”,按向导指示,完成对IIS的安装。
2,单击开始菜单---所有程序---管理工具---Internet信息服务(IIS)管理器,打开站点属性设置对话框。

3,点击主目录,将目录设置为自己的网页存放的目录。

4,点击开始,打开控制面板,防火墙,然后在左侧的关闭Windows防护墙。
5,局域网上的电脑输入http://你电脑的IP地址 ,就能打开网页了。

‘玖’ android studio Gradle守护进程的一个坑爹问题

首先 我们俩看一下 gradle的介绍

Gradle提供几个选项,使它容易配置的Java进程将被用于执行构建。同时可以配置这些在你当地的环境通过GRADLE_OPTS或JAVA_OPTS,某些设置比如JVM内存设置,Java,守护进程开/关可以更有用,如果他们可以与风投的项目版本,这样整个团队就可以使用一致的环境。建立一个一致的环境构建简单把这些设置成gradle.properties文件。

要想让项目编译的更加快速 最主要的问题就是 配置 gradle.properties

如果你之前没有什么配置,那么将会是下面的界面 (注释除外)

详细

阅读全文

与gradle编译jvm设置相关的资料

热点内容
微信文件夹为什么会被锁定 浏览:994
加密系列号 浏览:458
电冰箱换压缩机要注意什么 浏览:795
平板的访客模式如何加密 浏览:139
钉钉加密有用吗 浏览:112
加密u盘好还是不加密的 浏览:349
微观经济学平狄克第八版pdf 浏览:404
linux查看实时流量 浏览:557
如何存档到服务器 浏览:548
flash编程书籍推荐 浏览:835
php获得数组键值 浏览:402
香港云服务器操作 浏览:303
wpe最新源码 浏览:857
自己购买云主服务器推荐 浏览:422
个人所得税java 浏览:761
多余的服务器滑道还有什么用 浏览:192
pdf劈开合并 浏览:29
不能修改的pdf 浏览:752
同城公众源码 浏览:489
一个服务器2个端口怎么映射 浏览:298