提取Drools Guvnor.pkg文件

提取Drools Guvnor.pkg文件,drools,drools-guvnor,Drools,Drools Guvnor,我对口水和古夫诺都不熟悉。我们已经创建了DRL文件并加载到Guvnor中,我们已经构建了这个包。它产生了一个.pkg文件。我们从Guvnor下载这个.pkg文件,并将其用于我们的不同项目。现在我试图查看.pkg文件中的内容,但我不确定如何打开此文件。没有工具(我知道)用于打开Drools pkg文件并检查其内容。根据您试图实现的目标,一个可能的解决方案是通过编程从该pkg创建一个Kiebase(或kbase),并通过编程检查其内容 顺便问一下,你想在那个文件里找到什么 希望有帮助,下面的代码检查

我对口水和古夫诺都不熟悉。我们已经创建了DRL文件并加载到Guvnor中,我们已经构建了这个包。它产生了一个
.pkg
文件。我们从Guvnor下载这个
.pkg
文件,并将其用于我们的不同项目。现在我试图查看
.pkg
文件中的内容,但我不确定如何打开此文件。

没有工具(我知道)用于打开Drools pkg文件并检查其内容。根据您试图实现的目标,一个可能的解决方案是通过编程从该pkg创建一个Kiebase(或kbase),并通过编程检查其内容

顺便问一下,你想在那个文件里找到什么


希望有帮助,

下面的代码检查一个知识库,并将写出加载到其中的所有包的名称以及这些包中规则的名称。可能还有更多的信息可以提取,但我从来没有发现需要。你唯一得不到的就是规则的源代码。但根据你的解释,这在古夫纳是可以得到的

/**
 * Return a string containing the packages used to build the knowledge base.
 */
public static String knowledgeBaseDetails(KieBase kbase) {
    if (kbase == null) {
        return "Knowledge Base is null.";
    } else {
        StringBuilder sb = new StringBuilder(
                "Knowledge base built from the following packages:");
        Collection<KiePackage> packages = kbase
                .getKiePackages();
        for (KiePackage kp : packages) {
            sb.append("\n    Package: [" + kp.getName() + "]");
            for (Rule rule : kp.getRules()) {
                sb.append("\n        Rule: [" + rule.getName() + "]");
            }
        }
        return sb.toString();
    }
}
/**
*返回一个字符串,其中包含用于构建知识库的包。
*/
公共静态字符串knowledgeBaseDetails(KieBase kbase){
if(kbase==null){
return“知识库为空”;
}否则{
StringBuilder sb=新的StringBuilder(
“从以下包构建的知识库:”;
集合包=kbase
.getkie包();
对于(KIE包kp:包){
sb.append(“\n包:[“+kp.getName()+”]);
for(规则:kp.getRules()){
sb.append(“\n规则:[“+Rule.getName()+”]);
}
}
使某人返回字符串();
}
}

流口水5和6的情况几乎相同。一般来说,对于Drools的早期版本,只需将
Kie
更改为
Knowledge

你的口水版本是。。。?你到底想在PKG文件中“看到”什么,为什么?它不包含任何不在您的DRL文件中的内容,但获得所有这些内容并不是一件容易的任务。当然,很高兴知道,没有可用的工具。只是想看看其中的内容,在我们的项目中,DRL是由BA创建的,并以.pkg文件的形式提供给我们。感谢您的代码,很高兴知道我可以获得以编程方式部署的DRL的信息。