首页 > 解决方案 > Quarkus - Optaplanner 调整算法

问题描述

我在资源下创建了一个名为“solverConfig.xml”的新文件。我在 application.properties 中进行了更改,以编写以下内容:quarkus.optaplanner.solver-config-xml=src/main/resources/solverConfig.xml。但是,Quarkus 无法识别类路径。它说:无效的quarkus.optap lanner.solverConfigXML 属性(src/main/resources/solverConfig.xml):该类路径资源不存在。我遵循了Optaplanner 和 Quarkus solver config update的响应。但是,它不起作用。

solverConfig.xml 配置为:

<!-- Domain model configuration -->
<solutionClass>org.acme.optaplanner.domain.TimeTable</solutionClass>
<entityClass>org.acme.optaplanner.domain.Lesson</entityClass>

<!-- Score configuration -->
<scoreDirectorFactory>
    <constraintProviderClass>org.acme.optaplanner.solver.TimeTableConstraintProvider</constraintProviderClass>
</scoreDirectorFactory>

<!-- Optimization algorithms configuration -->
<termination>
    <minutesSpentLimit>1</minutesSpentLimit>
</termination>

<constructionHeuristic>
<constructionHeuristicType>FIRST_FIT_DECREASING</constructionHeuristicType>
</constructionHeuristic>

标签: quarkusoptaplanner

解决方案


src/main/resources前缀不是该属性值的一部分:

  • 要么在 中没有quarkus.optaplanner.solver-config-xml属性application.properties,这意味着它将拾取src/main/resources/solverConfig.xml(推荐,仅用于标准化)

  • 或将其明确设置quarkus.optaplanner.solver-config-xml=solverConfig.xml为拾取src/main/resources/solverConfig.xml

PS:Quarkus 中的solverConfig.xml 不需要entityClass、solutionClass 或constraintProviderClass。它会自动拾取。


推荐阅读