Gradle: изменение содержимого файла свойств внутри файла jar

В файле project.jar есть файл config.properties. Мне нужно изменить одно из свойств в этом файле без извлечения файла jar. Как это сделать и безопасно ли это делать, раз уж мы модифицируем Jar?

Код, который я пробовал:

def configProperties = new Properties()
def configPropFile = projectJar + '/config.properties'
configProperties.load(configPropFile)
configProperties.setProperty('versions', '1.7)
configProperties.store(configPropFile.newWriter(), null)

Это дает мне исключение:

Execution failed for task 'changeProp'.
> No signature of method: java.util.Properties.load() is applicable for argument types: (java.lang.String) values: [/com/codebase/project/config.properties]
  Possible solutions: load(java.io.InputStream), load(java.io.Reader), clear(), clone(), sort(), find()

Также пробовал:

configProperties.load(ClassLoader.getResourceAsStream(configPropFile))

Это дает мне исключение:

> Ambiguous method overloading for method java.util.Properties#load.
  Cannot resolve which method to invoke for [null] due to overlapping prototypes between:
        [class java.io.InputStream]
        [class java.io.Reader]

Я новичок в Gradle, может ли кто-нибудь мне помочь с этим?

Вы хотите изменить файл свойств в банке, чтобы потом изменить банку? Самый простой способ - распаковать / поменять / перепаковать.

Henry 26.10.2018 07:37

Выполнено. Спасибо за указатель

user1731553 26.10.2018 11:49

У меня такая же проблема при чтении из файла свойств.

WendyG 01.11.2018 15:23
Gradle за прокси-сервером
Gradle за прокси-сервером
Создайте проект Gradle под сетевым прокси.
"DevOps: Jenkins & AWS Series, часть 5: Установка Gradle на Ubuntu 22.04
"DevOps: Jenkins & AWS Series, часть 5: Установка Gradle на Ubuntu 22.04
В этой статье блога мы проведем вас через процесс установки Gradle на Ubuntu 22.04, интеграции его с Jenkins и создания задания Gradle. Мы...
0
3
222
0

Другие вопросы по теме