Я вроде как тестирую / исправляю старый проект gradle для создания RPM с помощью инструмента, который автоматизирует импорт файлов на сервер, не делая этого вручную.
Однако для этого инструмента требуется файл, который используется этим проприетарным программным обеспечением, и использует его, он знает, какие каталоги и библиотеки необходимы для использования. И на этом этапе необходимо сгенерировать RPM и вручную скопировать файл в папку bin инструмента, и я хотел включить этот файл в RPM, не передавая полный путь к файлу, поскольку программное обеспечение может использоваться любым пользователем и директорами. для программного обеспечения может отличаться от среды к среде.
В одном из классов объявлены следующие переменные:
private static final String DB_USER = "db_user";
private static final String DB_PASSWORD = "db_password";
private static final String DB_URL = "db_url";
private static final String W_HOME = "w_home";
private static final String W_LOGIN = "w_login";
private static final String W_LOGIN_USERNAME = "username";
private static final String W_LOGIN_PASSWORD = "password";
private static final String W_SERVER_URL = "w_server_url";
w_home - это путь, используемый для чтения места установки программного обеспечения, и, используя эту переменную в build.gradle, я мог легко передать папки и имя файла и получить его в RPM-пакете.
Мой вопрос, возможно ли вообще вызывать переменные Java или получить эту переменную в build.gradle
Редактировать: добавление задачи Gradle
task buildRpm(type: Rpm, overwrite: true, dependsOn: build) {
packageName = applicationName
release = rpm_release
arch = NOARCH
os = LINUX
epoch = git.head().time
summary = "Import"
license = 'Proprietary'
user User
permissionGroup Group
//THIS DIRECTORY SHOULD ALREADY BE PRESENT
into(Home){
addParentDirs = false
fileMode 0644
dirMode 0755
directory("${Home}/${ packageName }")
directory("${Home}/${ packageName }/lib")
directory("${Home}/${ packageName }/config")
directory("${Home}/${ packageName }/bin")
directory("${Home}/${ packageName }/logs", 0777)
from(jar.outputs.files) {
into "${ packageName }/lib"
}
from(configurations.runtime) {
into "${ packageName }/lib"
}
from('lib') {
into "${ packageName }/lib"
}
from('src/dist/config') {
exclude 'log4j2.xml'
into "${ packageName }/config"
}
from('src/dist/config/log4j2.xml') {
into "${ packageName }/config"
fileType CONFIG | NOREPLACE
}
from('out/scripts') {
into "${ packageName }/bin"
fileMode 0755
}
}
requires('java', '2000:1.8.0_121', GREATER | EQUAL)
}