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
安装目录
二、作用与功能
- 定义项目版本号:可以在gradle.properties文件中定义项目的版本号,如
version=1.0.0
,然后在构建脚本中引用该版本号。 - 配置JVM参数:通过gradle.properties文件,可以调整Gradle守护进程的JVM参数,比如堆内存大小(
org.gradle.jvmargs
)。这对于优化构建性能和内存使用非常有用。例如,可以配置为-Xmx2048m -XX:MaxPermSize=512m
来限制最大堆内存和永久代大小。 - 定义全局属性:在gradle.properties文件中定义的全局属性可以在整个项目中的所有Gradle脚本中使用。这有助于保持配置的一致性和可维护性。例如,可以定义一些常量或路径,以便在多个模块中共享。
- 配置构建缓存:可以启用或禁用构建缓存,以及配置缓存的位置和其他相关设置。构建缓存可以显著提高构建效率,因为它允许Gradle重用之前构建的结果。
- 设置代理:如果开发环境需要通过代理服务器访问互联网,可以在gradle.properties文件中设置代理信息,以便Gradle能够正确地进行网络通信。
- 环境变量:虽然gradle.properties文件主要用于Gradle配置,但也可以在其中设置一些环境变量,以便在构建过程中使用。
- 控制构建行为:通过配置相关属性,可以控制Gradle的构建行为,例如是否启用并行执行、是否打印调试信息等。例如,可以配置
org.gradle.parallel=true
来启用并行构建,或者配置org.gradle.logging.level=info
来设置日志级别为info。
三、基本配置示例
以下是一个gradle.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
四、属性值的优先级
- 如果全局和局部(如模块级别的gradle.properties文件)属性文件中存在相同属性名,局部属性将覆盖全局属性。
- 除了项目根目录下的gradle.properties文件外,还可以在Gradle命令行中直接指定属性值,这些命令行指定的属性将覆盖所有项目和全局配置文件中的属性。
五、使用环境特定的配置文件
Gradle允许根据不同的环境(如开发、测试和生产)定义不同的配置文件。例如,可以创建gradle-dev.properties、gradle-test.properties和gradle-prod.properties等文件,并在gradle.properties中指定环境特定的配置文件:
# gradle.properties
systemProp.file=gradle-${env}.properties
然后在gradle-dev.properties中定义开发环境的配置:
# gradle-dev.properties
version=1.0.0-SNAPSHOT
在构建时,可以通过-Denv=dev
参数来指定使用开发环境的配置。
综上所述,gradle.properties文件是Gradle构建系统中非常重要的一个配置文件,它提供了灵活的配置方式,使得开发者可以根据不同的环境和需求来调整构建过程。