Java 将optaplanner打包到单个uber jar时的NullPointerException

Java 将optaplanner打包到单个uber jar时的NullPointerException,java,maven,drools,maven-assembly-plugin,optaplanner,Java,Maven,Drools,Maven Assembly Plugin,Optaplanner,请给我指出问题所在,或者给我一些建议,我可以如何进一步调查这个问题 我正在使用optaplanner v6.4.x。我创建了一个java项目,该项目只包含运行minimal NQueens示例所需的类。以下是主方法的输出: Solved 8 queens: _ _ _ _ Q _ _ _ _ Q _ _ _ _ _ _ _ _ _ Q _ _ _ _ _ _ _ _ _ Q _ _ _ _ _ _ _ _ _ Q _ _ Q _ _ _ _ _ Q _ _ _ _ _ _ _ _

请给我指出问题所在,或者给我一些建议,我可以如何进一步调查这个问题

我正在使用optaplanner v6.4.x。我创建了一个java项目,该项目只包含运行minimal NQueens示例所需的类。以下是主方法的输出:

Solved 8 queens:
 _ _ _ _ Q _ _ _
 _ Q _ _ _ _ _ _
 _ _ _ Q _ _ _ _
 _ _ _ _ _ Q _ _
 _ _ _ _ _ _ _ Q
 _ _ Q _ _ _ _ _
 Q _ _ _ _ _ _ _
 _ _ _ _ _ _ Q _
我正在使用maven assembly插件构建一个uber jar,将应用程序和所有is依赖项打包到一个可执行jar中。下面是pom.xml的相关部分

<plugin>
  <artifactId>maven-assembly-plugin</artifactId>
  <configuration>
    <appendAssemblyId>false</appendAssemblyId>
    <archive>
      <manifest>
        <mainClass>org.optaplanner.examples.nqueens.app.NQueensHelloWorld</mainClass>
      </manifest>
    </archive>
    <descriptorRefs>
      <descriptorRef>jar-with-dependencies</descriptorRef>
    </descriptorRefs>
  </configuration>
</plugin>
它在
target
目录中创建一个nqueens.jar。当我启动罐子时

$ java -jar target/nqueens.jar
我收到以下NullPointerException:

线程“main”java.lang.NullPointerException中出现异常
位于org.drools.compiler.rule.builder.PackageBuildContext.init(PackageBuildContext.java:104)
位于org.drools.compiler.rule.builder.RuleBuildContext.(RuleBuildContext.java:80)
在org.drools.compiler.builder.impl.KnowledgeBuilderImpl.buildRuleBuilderContext(KnowledgeBuilderImpl.java:1804)
位于org.drools.compiler.builder.impl.KnowledgeBuilderImpl.Preprecrules(KnowledgeBuilderImpl.java:1125)
在org.drools.compiler.builder.impl.KnowledgeBuilderImpl.compileRules(KnowledgeBuilderImpl.java:1106)上
在org.drools.compiler.builder.impl.KnowledgeBuilderImpl.compileAllRules(KnowledgeBuilderImpl.java:989)
位于org.drools.compiler.builder.impl.CompositeKnowledgeBuilderImpl.buildRules(CompositeKnowledgeBuilderImpl.java:260)
位于org.drools.compiler.builder.impl.CompositeKnowledgeBuilderImpl.buildPackages(CompositeKnowledgeBuilderImpl.java:121)
位于org.drools.compiler.builder.impl.CompositeKnowledgeBuilderImpl.build(CompositeKnowledgeBuilderImpl.java:105)
位于org.drools.compiler.kie.builder.impl.AbstractKieModule.buildKnowledgePackages(AbstractKieModule.java:243)
在org.drools.compiler.kie.builder.impl.AbstractKieProject.verify(AbstractKieProject.java:64)
位于org.drools.compiler.kie.builder.impl.KieBuilderImpl.buildKieProject(KieBuilderImpl.java:230)
位于org.drools.compiler.kie.builder.impl.KieBuilderImpl.buildAll(KieBuilderImpl.java:198)
位于org.optaplanner.core.config.score.director.ScoreDirectorFactoryConfig.buildDroolsScoreDirectorFactory(ScoreDirectorFactoryConfig.java:447)
位于org.optaplanner.core.config.score.director.ScoreDirectorFactoryConfig.buildScoreDirectorFactory(ScoreDirectorFactoryConfig.java:298)
位于org.optaplanner.core.config.score.director.ScoreDirectorFactoryConfig.buildScoreDirectorFactory(ScoreDirectorFactoryConfig.java:230)
位于org.optaplanner.core.config.solver.SolverConfig.buildSolver(SolverConfig.java:233)
位于org.optaplanner.core.impl.solver.AbstractSolverFactory.buildSolver(AbstractSolverFactory.java:52)
位于org.optaplanner.examples.nqueens.app.NQueensHelloWorld.main(NQueensHelloWorld.java:33)


您能用
7.0.0.Final
复制吗?Drools应该有比这更好的错误消息,并且可能在新版本中已经有了(如果没有,我们可以创建一个问题)。@GeoffreyDeSmet版本7.0.0.Final中的NQuees示例可以工作,并且可以组装到一个jar中并执行。没问题。
$ java -jar target/nqueens.jar