Мне немного непонятно, что вы пытались сделать, но код Java из зависимости (ваш пункт 3) может быть вызван из правил, если у вас есть Jar в пути к классам.
Представьте, что ваш проект настроен следующим образом:
|-rule-utils (project name)
|-- src\main\java\com\mycompany\common\HelperFunctions.java
|--pom.xml
И вы определили некоторую служебную функцию public static void doSomethingUseful()
в своем классе HelperFunctions.
В другом вашем проекте, где существуют ваши правила, вы можете включить свою project1
jar в качестве зависимости, возможно, следующим образом в свой pom:
<dependency>
<artifactId>rule-utils</artifactId>
<groupId>com.mycompany</groupId>
</dependency>
И затем вы можете импортировать и использовать HelperFunctions и его метод doSomethingUseful
, как любой другой Java код в вашем drl:
import com.mycompany.common.HelperFunctions;
rule "Example rule"
when
then
HelperFunctions.doSomethingUseful();
end
По моему опыту, довольно часто таким образом вызывать сторонний служебный код, например служебные классы Apache, такие как StringUtils
и CollectionUtils
( хотя чаще с левой стороны, чем в последствиях.)