java - 如何在 gradle 中的类路径之外指定 quartz 属性文件?

标签 java gradle quartz

我试图在 gradle 中指定我的 quartz 属性文件。从“配置”目录而不是资源。

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

quartz 的输出是
PropertiesFactoryBean      --- Loading properties file from class path resource [quartz.properties]
SchedulerConfig$$EnhancerB --- Cannot load quartz.properties.

它没有被设置的症状是我得到了错误的 sql 方言,所以应用程序在加载时给出了一个数据库错误。

最佳答案

我有同样的问题,正在查看您的代码,使用 file:config/local/quartz.properties很可能是错误的。官方文档实际上只在该属性中放置了一个路径,而没有任何 URI 前缀或任何其他内容。该前缀很可能使路径无效并且 Quartz 无法找到它。以下是example from 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"

至少一个可用 factory实际上也只使用一个文件:
    String requestedFile = System.getProperty(PROPERTIES_FILE);
    String propFileName = requestedFile != null ? requestedFile
            : "quartz.properties";
    File propFile = new File(propFileName);

除此之外,至少现在some factories存在支持直接提供设置的:
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.

关于java - 如何在 gradle 中的类路径之外指定 quartz 属性文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46944767/

相关文章:

java - 是否可以使用不同类型参数将谓词与 `and` 链接起来?

android - BuildConfig 未正确创建(Gradle Android)

Android studio - 如何使用 gradle 中的可执行 jar 文件

objective-c - 如何找到 os x 上所有事件窗口的根元素

spring-boot-starter-quartz 实现作业与扩展 QuartzJobBean

Java - 向所有客户端发送消息

java - 尽管日志中没有错误,但电子邮件发送在 Google App Engine 上不起作用

java - 收到异常 "SSLPeerUnverifiedException: peer not authenticated",我该如何避免/忽略它?

android - gradle 和 react-native 与 fish shell

java - 我可以使用方法而不是 Quartz 类来定义作业实例吗?