2017-04-13 71 views
0

坛子我有下面的代码加载我KieContainerKieScanner不更新远程存储库的Nexus(Drools的6.5.0.Final)

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的工作原理是什么?

KieScanner是否仅在将jar安装到与服务器相同的系统上的本地Maven存储库时才工作?

+0

总是将Drools版本添加到有关Drools的问题中。 – laune

+0

@laune the drools版本是6.5.0.Final – praveen

+0

您是否找到有关此问题的解决方案?我们正在寻找一个关于6.5.0版本的解决方案,但我们还没有成功。 @praveen – neverwinter

回答

0

确保您已在类路径应用程序中添加了kie-ci工件。 KieScanner是基于maven的,所以它会一直在本地maven仓库和远程maven仓库中查找工件。如果你想指定远程Maven仓库的位置,那么你可以在settings.xml中配置仓库,并在使用下面的应用程序部署应用程序时传递这个setting.xml: -Dkie.maven.settings.custom =/path/to/settings。 XML。

+0

是的,我在classpath中有kie-ci工件。将尝试部署应用程序。将更新与我的本地settings.xml问题让我知道是否有任何差异 – praveen