KieScanner不从远程nexus存储库更新jar(Drools 6.5.0.Final)

时间:2017-04-13 10:04:05

标签: java drools jbpm rule-engine

我有以下代码加载我的KieContainer

String url = "http://X.X.X.X:8081/repository/maven-releases/com/some/company/rules-config/0.0.2/rules-config-0.0.2.jar";
    KieServices kieServices = KieServices.Factory.get();
    kieServices.getResources().newUrlResource(url);
    ReleaseId releaseId = kieServices.newReleaseId(GROUP_ID, "rules-config", "0.0.2-SNAPSHOT");
    KieContainer kContainer = kieServices.newKieContainer(releaseId);
    KieScanner kScanner = kieServices.newKieScanner(kContainer);
    kScanner.start(2000L);

目前,应用程序在系统启动时加载jar文件。但是当我推送一个相同版本的新jar时,扫描仪没有根据时间戳加载jar。

与以下相同的代码

    KieServices kieServices = KieServices.Factory.get();
    ReleaseId releaseId = kieServices.newReleaseId(GROUP_ID, "rules-config", "0.0.2-SNAPSHOT");
    KieContainer kContainer = kieServices.newKieContainer(releaseId);
    KieScanner kScanner = kieServices.newKieScanner(kContainer);
    kScanner.start(2000L);

更新:settings.xml(在本地机器m2目录中)

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.1.0 http://maven.apache.org/xsd/settings-1.1.0.xsd">
<!--<localRepository>path to some directory.eg d:\repository</localRepository> -->
<mirrors>
    <mirror>
        <id>nexus</id>
        <name>somecompany</name>
        <url>http://X.X.X.X:8081/repository/maven-public</url>
        <mirrorOf>*</mirrorOf>
    </mirror>
</mirrors>
<servers>
    <server>
        <id>nexus</id>
        <username>XXXXXX</username>
        <password>XXXXXX</password>
    </server>
</servers>
<profiles>
    <profile>
        <id>development</id>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
        <repositories>
            <repository>
                <id>snapshots-repo</id>
                <url>http://X.X.X.X:8081/repository/maven-snapshots/</url>
                <releases>
                    <enabled>false</enabled>
                </releases>
                <snapshots>
                    <enabled>true</enabled>
                    <updatePolicy>interval:1</updatePolicy>
                </snapshots>
            </repository>
        </repositories>
    </profile>
</profiles>

当我进行本地构建和安装时工作正常。虽然罐子的版本相同,但规则会根据时间戳进行刷新。

我的理解中有什么遗漏吗? KieScanner究竟是如何工作的?

只有当jar安装在与服务器相同的系统上的本地maven存储库中时,KieScanner才能工作吗?

1 个答案:

答案 0 :(得分:0)

确保在类路径中添加了kie-ci工件。 KieScanner基于maven,因此它将始终在本地maven存储库和远程maven存储库中查找工件。如果要指定远程maven存储库的位置,则可以在settings.xml中配置存储库,并在使用以下应用程序部署应用程序时传递此setting.xml: -Dkie.maven.settings.custom = /路径/到/ settings.xml中。