Win11GBK, idea2024.2.4, 使用Gradle8.8本地安装构建,不使用包装器, 解决utf-8乱码问题, 笔记241028

Win11GBK, idea2024.2.4, 使用Gradle8.8本地安装构建,不使用包装器, 解决utf-8乱码问题, 笔记241028

解决办法 : 在 gradle.properties 配置文件中, 设置jvm启动项参数, 字符编码设为gbk, -Dfile.encoding=gbk 与操作系统保持一致;

 -Dfile.encoding=gbk

如:

org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=gbk

没错, 虽然java文件是utf-8编码, 必须设置为 -Dfile.encoding=操作系统的编码

如果操作系统编码是utf-8就设为utf-8,或者不用设置,

Windows11设置系统编码为 utf-8 的方法是:

控制面板👉区域👉管理 👉 更改系统区域设置 👉 勾选"使用Unicode UTF-8..."

gradle.properties

gradle.properties 是Gradle构建系统中的一个配置文件,它允许开发者将构建配置与代码分离,从而使得构建过程更加灵活和可配置。以下是对gradle.properties文件的详细解析:

一、文件位置

gradle.properties文件可放在: GRADLE_USER_HOME用户目录 下 , 项目的根目录 下 , GRADLE_HOME安装目录

  • 在Gradle的用户目录 GRADLE_USER_HOME(Windows和Linux通常是: 用户目录/.gradle)文件初始可能不存在, 可以自己创建一个名为gradle.properties的文件。
  • 项目的根目录下, 文件初始可能不存在, 可以自己创建一个名为gradle.properties的文件。
  • GRADLE_HOME安装目录下, 文件初始可能不存在, 可以自己创建一个名为gradle.properties的文件。

优先级: GRADLE_USER_HOME用户目录 高于> 项目的根目录 高于> GRADLE_HOME安装目录

二、作用与功能

  1. 定义项目版本号 :可以在gradle.properties文件中定义项目的版本号,如version=1.0.0,然后在构建脚本中引用该版本号。
  2. 配置JVM参数 :通过gradle.properties文件,可以调整Gradle守护进程的JVM参数,比如堆内存大小(org.gradle.jvmargs)。这对于优化构建性能和内存使用非常有用。例如,可以配置为-Xmx2048m -XX:MaxPermSize=512m来限制最大堆内存和永久代大小。
  3. 定义全局属性:在gradle.properties文件中定义的全局属性可以在整个项目中的所有Gradle脚本中使用。这有助于保持配置的一致性和可维护性。例如,可以定义一些常量或路径,以便在多个模块中共享。
  4. 配置构建缓存:可以启用或禁用构建缓存,以及配置缓存的位置和其他相关设置。构建缓存可以显著提高构建效率,因为它允许Gradle重用之前构建的结果。
  5. 设置代理:如果开发环境需要通过代理服务器访问互联网,可以在gradle.properties文件中设置代理信息,以便Gradle能够正确地进行网络通信。
  6. 环境变量:虽然gradle.properties文件主要用于Gradle配置,但也可以在其中设置一些环境变量,以便在构建过程中使用。
  7. 控制构建行为 :通过配置相关属性,可以控制Gradle的构建行为,例如是否启用并行执行、是否打印调试信息等。例如,可以配置org.gradle.parallel=true来启用并行构建,或者配置org.gradle.logging.level=info来设置日志级别为info。

三、基本配置示例

以下是一个gradle.properties文件的基本配置示例:

properties 复制代码
# 定义项目版本号
version=1.0.0

# 定义JVM参数
org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8

# 定义项目特定的配置
projectName=MyAwesomeProject

# 启用构建缓存
org.gradle.caching=true

# 启用并行执行任务
org.gradle.parallel=true

# 设置日志级别为info
org.gradle.logging.level=info

四、属性值的优先级

  1. 如果全局和局部(如模块级别的gradle.properties文件)属性文件中存在相同属性名,局部属性将覆盖全局属性。
  2. 除了项目根目录下的gradle.properties文件外,还可以在Gradle命令行中直接指定属性值,这些命令行指定的属性将覆盖所有项目和全局配置文件中的属性。

五、使用环境特定的配置文件

Gradle允许根据不同的环境(如开发、测试和生产)定义不同的配置文件。例如,可以创建gradle-dev.properties、gradle-test.properties和gradle-prod.properties等文件,并在gradle.properties中指定环境特定的配置文件:

properties 复制代码
# gradle.properties
systemProp.file=gradle-${env}.properties

然后在gradle-dev.properties中定义开发环境的配置:

properties 复制代码
# gradle-dev.properties
version=1.0.0-SNAPSHOT

在构建时,可以通过-Denv=dev参数来指定使用开发环境的配置。

综上所述,gradle.properties文件是Gradle构建系统中非常重要的一个配置文件,它提供了灵活的配置方式,使得开发者可以根据不同的环境和需求来调整构建过程。

相关推荐
亦枫Leonlew2 小时前
微积分复习笔记 Calculus Volume 1 - 6.3 Volumes of Revolution: Cylindrical Shells
笔记·数学·微积分
吃着火锅x唱着歌2 小时前
Redis设计与实现 学习笔记 第十八章 发布与订阅
redis·笔记·学习
好评笔记2 小时前
机器学习笔记——聚类算法(Kmeans、GMM-使用EM优化)
人工智能·笔记·算法·机器学习
TeYiToKu3 小时前
笔记整理—linux驱动开发部分(13)块设备
linux·c语言·驱动开发·笔记·嵌入式硬件·arm
澜世3 小时前
python基础之学生成绩管理系统
网络·笔记·python
陈奕迅本讯3 小时前
数据结构-堆排序笔记
数据结构·笔记
明明真系叻4 小时前
第二十一周机器学习笔记:动手深度学习之——数据操作、数据预处理
笔记·深度学习·机器学习
我想回家种地4 小时前
渗透学习笔记之Windows基础
笔记·学习
佚名ano4 小时前
阻尼Newton方法-数值最优化方法-课程学习笔记-5
笔记·学习·概率论
AI视觉网奇5 小时前
动作评估学习笔记
笔记·学习