我用的是Drool 7.x版本。我能够让KieScanner使用“LATEST”在我的本地maven仓库上工作。但是每次我在workbench上更新规则时,我都必须手动运行mvn install来更新我的本地存储库,以便KieScanner可以拾取更改。是这样吗或者是否可以在每次扫描器运行时强制下载?
我要去我的定制仓库拿最新的jar。
我的配置
KieServices ks = KieServices.Factory.get();
ReleaseId releaseId = ks.newReleaseId( "com.test", "poc", "LATEST" );
KieContainer kContainer = ks.newKieContainer(releaseId);
KieScanner kieScanner = ks.newKieScanner(kContainer);
kieScanner.start( 10000L );
Scanner scanner = new Scanner(System.in);
while (true) {
kieScanner.scanNow();
String line = scanner.nextLine();
runRule(kContainer);
}
}
我已经在maven设置文件中配置了我的自定义存储库。
<profile>
<id>development</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<repositories>
<repository>
<id>customRepo</id>
<url>https://customRepo/v2</url>
<releases>
<enabled>false</enabled>
<updatePolicy>always</updatePolicy>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</snapshots>
</repository>
</repositories>
</profile>
</profiles>
<activeProfiles>
<activeProfile>development</activeProfile>
</activeProfiles>
异常:无法解析工件:com.test:
我试过下面的所有链接。但没有运气
KieScanner cannot fetch LATEST version automatically!
KieScanner with remote maven repo
Loading Drools/KIE Workbench artifacts directly from the repository
How do I tell Maven to use the latest version of a dependency?
如何告诉maven 3.6.3从自定义存储库获取最新版本工件
https://access.redhat.com/solutions/1592893
KieScanner not updating KieSessions at runtime
KieScanner not working in Drools 6.1
KieScanner not updating jar from remote nexus repository (Drools 6.5.0.Final)
请问有没有人建议解决这个问题?
2条答案
按热度按时间qeeaahzv1#
LATEST
和RELEASE
是Maven 2的关键字。它们的行为不可预测,在Maven 3中被完全删除。参考https://www.baeldung.com/maven-dependency-latest-version#1-deprecated-syntax
nx7onnlm2#
如果您使用SNAPSHOT获取GAV版本,则可以使用
[1.0-SNAPSHOT,)
获取最新的SNAPSHOT版本。LATEST
无法获取SNAPSHOT版本,因为它在Maven 3中已被弃用。