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

相关推荐
呵呵哒( ̄▽ ̄)"1 小时前
尚硅谷-react教程-求和案例-优化3-整合UI组件和容器组件-总结优化-笔记
前端·笔记·react.js
沫夕残雪2 小时前
网络编程及回显服务器
网络·tcp/ip·java-ee·intellij-idea·信息与通信
l1x1n02 小时前
【IT基础中英笔记】符号系统与数据类型 | CompTIA ITF+
笔记·学习
黄交大彭于晏3 小时前
第五天学习总结:C语言学习笔记 - 数组篇
c语言·笔记·学习
ln-x3 小时前
在IDEA中运行Mybatis后发现取出的password值为null
java·intellij-idea·mybatis
Pandaconda3 小时前
【计算机网络 - 基础问题】每日 3 题(五十九)
开发语言·经验分享·笔记·后端·计算机网络·面试·职场和发展
爱编程的古惑仔3 小时前
leetcode刷题笔记——15.三数之和
笔记·算法·leetcode
zhentiya4 小时前
哈工大《理论力学》第九版课后答案解析及笔记PDF
笔记·pdf