Как указать файл свойств кварца вне пути к классам в Gradle?
Я пытаюсь указать мой файл свойств кварца в Gradle. Из каталога 'config', а не из ресурсов.
String quartzProperties = System.properties['org.quartz.properties'] ?: "file:config/local/quartz.properties"
System.setProperty("org.quartz.properties", quartzProperties)
Выход из
(System.properties).each {
println "Prop ${it}"
}
или задача свойств, это
Prop quartz.properties=file:config/local/quartz.properties
Выход из кварца
PropertiesFactoryBean --- Loading properties file from class path resource [quartz.properties]
SchedulerConfig$$EnhancerB --- Cannot load quartz.properties.
Признак того, что он не установлен, заключается в том, что я получаю неправильный SQL-диалект, поэтому приложение выдает ошибку базы данных при загрузке.
0 ответов
У меня был тот же вопрос, и я смотрел на ваш код, используя file:config/local/quartz.properties
скорее всего был неправ. Официальные документы действительно помещают в это свойство только путь без префикса URI или чего-либо еще. Этот префикс, скорее всего, сделал путь недействительным, и Quartz не смог его найти. Ниже приведен пример с GitHub:
workdir=`dirname $0`
workdir=`cd ${workdir} && pwd`
QUARTZ=${workdir}/../..
[...]
# Set the name and location of the quartz.properties file
QUARTZ_PROPS="-Dorg.quartz.properties=${workdir}/quartz.properties"
По крайней мере, одна доступная фабрика действительно также использует только файл:
String requestedFile = System.getProperty(PROPERTIES_FILE);
String propFileName = requestedFile != null ? requestedFile
: "quartz.properties";
File propFile = new File(propFileName);
Кроме того, по крайней мере, в настоящее время существуют некоторые фабрики, которые поддерживают непосредственное предоставление настроек:
StdSchedulerFactory(Properties props)
Create a StdSchedulerFactory that has been initialized via initialize(Properties).
initialize(InputStream propertiesStream)
Initialize the SchedulerFactory with the contents of the Properties file opened with the given InputStream.