【发布时间】:2019-08-25 10:27:11
【问题描述】:
当我尝试在 Gradle 中编辑属性时,它会重新格式化我的整个属性文件并删除 cmets。我假设这是因为 Gradle 读取和写入属性文件的方式。我只想更改一个属性并保持其余属性文件不变,包括将当前的 cmets 保留在适当的位置和值的顺序。使用 Gradle 5.2.1 可以做到这一点吗?
我尝试只使用 setProperty(不写入文件),使用了不同的写入器:(versionPropsFile.withWriter { versionProps.store(it, null) } )
并尝试了不同的方式来读取属性文件:versionProps.load(versionPropsFile.newDataInputStream())
这是我当前的 Gradle 代码:
File versionPropsFile = file("default.properties");
def versionProps = new Properties()
versionProps.load(versionPropsFile.newDataInputStream())
int version_minor = versionProps.getProperty("VERSION_MINOR")
int version_build = versionProps.getProperty("VERSION_BUILD")
versionProps.setProperty("VERSION_MINOR", 1)
versionProps.setProperty("VERSION_BUILD", 2)
versionPropsFile.withWriter { versionProps.store(it, null) }
这是属性文件在 gradle 接触之前的样子:
# Show splash screen at startup (yes* | no)
SHOW_SPLASH = yes
# Start in minimized mode (yes | no*)
START_MINIMIZED = no
# First day of week (mon | sun*)
# FIRST_DAY_OF_WEEK = sun
# Version number
# Format: MAJOR.MINOR.BUILD
VERSION_MAJOR = 1
VERSION_MINOR = 0
VERSION_BUILD = 0
# Build value is the date
BUILD = 4-3-2019
Gradle 对它的作用如下:
#Wed Apr 03 11:49:09 CDT 2019
DISABLE_L10N=no
LOOK_AND_FEEL=default
ON_MINIMIZE=normal
CHECK_IF_ALREADY_STARTED=YES
VERSION_BUILD=0
ASK_ON_EXIT=yes
SHOW_SPLASH=yes
VERSION_MAJOR=1
VERSION_MINOR=0
VERSION_BUILD=0
BUILD=04-03-2019
START_MINIMIZED=no
ON_CLOSE=minimize
PORT_NUMBER=19432
DISABLE_SYSTRAY=no
【问题讨论】:
标签: java gradle properties-file