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构建系统中非常重要的一个配置文件,它提供了灵活的配置方式,使得开发者可以根据不同的环境和需求来调整构建过程。

相关推荐
进阶的猪23 分钟前
stm32 GPIO输出-使用固件库点亮LED灯 Q&A
c语言·笔记·stm32·单片机
阿萨德528号38 分钟前
Maven 项目构建笔记 - 单体应用与简单微服务
笔记·微服务·maven
YJlio41 分钟前
Strings 学习笔记(12.1):从二进制里“扒”出明文信息的瑞士军刀
服务器·笔记·学习
Hunter1161 小时前
Delphi通过ITHTTP传输有汉字乱码问题
笔记
做cv的小昊2 小时前
【TJU】信息检索与分析课程笔记和练习(3)学术评价
大数据·人工智能·经验分享·笔记·学习·全文检索
兜兜转转了多少年2 小时前
《Prompt Engineering白皮书》笔记08 我用 Gemini 10 分钟写完脚本,100 个文件自动改名
笔记·prompt
重生之我在番茄自学网安拯救世界2 小时前
网络安全中级阶段学习笔记(九):upload靶场实战(14-16关)-图片马制作与通过教学
笔记·学习·网络安全·文件上传漏洞·图片木马
Lv11770082 小时前
Visual Studio中的静态成员
笔记·c#·visual studio
RanceGru2 小时前
LLM学习笔记7——unsloth微调Qwen3-4B模型与vllm部署测试
人工智能·笔记·学习·语言模型·vllm
中屹指纹浏览器2 小时前
2025技术解析:联邦学习驱动的指纹特征协同优化技术实现
经验分享·笔记