Как указать файл свойств кварца вне пути к классам в 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.
Другие вопросы по тегам