The following drools will make the error handling flip:
package dialogue; import java.util.Unkown declare DefaultReply symbol:Unkown end
Will result in:
[ERROR] Failed to execute goal org.kie:kie-maven-plugin:6.5.0.Final:build (default-build) on project salve_drools: Execution default-build of goal org.kie:kie-maven-plugin:6.5.0.Final:build failed: A required class was missing while executing org.kie:kie-maven-plugin:6.5.0.Final:build: Ljava/util/Unkown;
[ERROR] -----------------------------------------------------
[ERROR] realm = extension>org.kie:kie-maven-plugin:6.5.0.Final
[ERROR] strategy = org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy
[ERROR] urls[0] = file:/home/username/.m2/repository/org/kie/kie-maven-plugin/6.5.0.Final/kie-maven-plugin-6.5.0.Final.jar
[ERROR] urls[1] = file:/home/username/.m2/repository/org/codehaus/plexus/plexus-utils/3.0.20/plexus-utils-3.0.20.jar
[ERROR] urls[2] = file:/home/username/.m2/repository/org/eclipse/aether/aether-util/1.0.0.v20140518/aether-util-1.0.0.v20140518.jar
[ERROR] urls[3] = file:/home/username/.m2/repository/javax/enterprise/cdi-api/1.0-SP4/cdi-api-1.0-SP4.jar
[ERROR] urls[4] = file:/home/username/.m2/repository/org/jboss/spec/javax/interceptor/jboss-interceptors-api_1.1_spec/1.0.1.Final/jboss-interceptors-api_1.1_spec-1.0.1.Final.jar
[ERROR] urls[5] = file:/home/username/.m2/repository/javax/annotation/jsr250-api/1.0/jsr250-api-1.0.jar
[ERROR] urls[6] = file:/home/username/.m2/repository/org/sonatype/sisu/sisu-guice/3.2.3/sisu-guice-3.2.3-no_aop.jar
[ERROR] urls[7] = file:/home/username/.m2/repository/aopalliance/aopalliance/1.0/aopalliance-1.0.jar
[ERROR] urls[8] = file:/home/username/.m2/repository/com/google/guava/guava/13.0.1/guava-13.0.1.jar
[ERROR] urls[9] = file:/home/username/.m2/repository/org/codehaus/plexus/plexus-interpolation/1.21/plexus-interpolation-1.21.jar
[ERROR] urls[10] = file:/home/username/.m2/repository/org/sonatype/plexus/plexus-sec-dispatcher/1.3/plexus-sec-dispatcher-1.3.jar
[ERROR] urls[11] = file:/home/username/.m2/repository/org/sonatype/plexus/plexus-cipher/1.7/plexus-cipher-1.7.jar
[ERROR] urls[12] = file:/home/username/.m2/repository/org/codehaus/plexus/plexus-component-annotations/1.5.5/plexus-component-annotations-1.5.5.jar
[ERROR] urls[13] = file:/home/username/.m2/repository/org/apache/xbean/xbean-reflect/3.4/xbean-reflect-3.4.jar
[ERROR] urls[14] = file:/home/username/.m2/repository/log4j/log4j/1.2.17/log4j-1.2.17.jar
[ERROR] urls[15] = file:/home/username/.m2/repository/commons-logging/commons-logging-api/1.1/commons-logging-api-1.1.jar
[ERROR] urls[16] = file:/home/username/.m2/repository/com/google/collections/google-collections/1.0/google-collections-1.0.jar
[ERROR] urls[17] = file:/home/username/.m2/repository/junit/junit/4.12/junit-4.12.jar
[ERROR] urls[18] = file:/home/username/.m2/repository/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar
[ERROR] urls[19] = file:/home/username/.m2/repository/com/google/protobuf/protobuf-java/2.6.0/protobuf-java-2.6.0.jar
[ERROR] urls[20] = file:/home/username/.m2/repository/org/drools/drools-core/6.5.0.Final/drools-core-6.5.0.Final.jar
[ERROR] urls[21] = file:/home/username/.m2/repository/org/mvel/mvel2/2.2.8.Final/mvel2-2.2.8.Final.jar
[ERROR] urls[22] = file:/home/username/.m2/repository/commons-codec/commons-codec/1.4/commons-codec-1.4.jar
[ERROR] urls[23] = file:/home/username/.m2/repository/org/drools/drools-compiler/6.5.0.Final/drools-compiler-6.5.0.Final.jar
[ERROR] urls[24] = file:/home/username/.m2/repository/org/antlr/antlr-runtime/3.5/antlr-runtime-3.5.jar
[ERROR] urls[25] = file:/home/username/.m2/repository/org/eclipse/jdt/core/compiler/ecj/4.4.2/ecj-4.4.2.jar
[ERROR] urls[26] = file:/home/username/.m2/repository/com/thoughtworks/xstream/xstream/1.4.9/xstream-1.4.9.jar
[ERROR] urls[27] = file:/home/username/.m2/repository/xmlpull/xmlpull/1.1.3.1/xmlpull-1.1.3.1.jar
[ERROR] urls[28] = file:/home/username/.m2/repository/xpp3/xpp3_min/1.1.4c/xpp3_min-1.1.4c.jar
[ERROR] urls[29] = file:/home/username/.m2/repository/org/kie/kie-api/6.5.0.Final/kie-api-6.5.0.Final.jar
[ERROR] urls[30] = file:/home/username/.m2/repository/org/kie/kie-internal/6.5.0.Final/kie-internal-6.5.0.Final.jar
[ERROR] urls[31] = file:/home/username/.m2/repository/org/drools/drools-decisiontables/6.5.0.Final/drools-decisiontables-6.5.0.Final.jar
[ERROR] urls[32] = file:/home/username/.m2/repository/org/apache/poi/poi-ooxml/3.13/poi-ooxml-3.13.jar
[ERROR] urls[33] = file:/home/username/.m2/repository/org/apache/poi/poi-ooxml-schemas/3.13/poi-ooxml-schemas-3.13.jar
[ERROR] urls[34] = file:/home/username/.m2/repository/org/apache/xmlbeans/xmlbeans/2.3.0/xmlbeans-2.3.0.jar
[ERROR] urls[35] = file:/home/username/.m2/repository/stax/stax-api/1.0.1/stax-api-1.0.1.jar
[ERROR] urls[36] = file:/home/username/.m2/repository/org/apache/poi/poi/3.13/poi-3.13.jar
[ERROR] urls[37] = file:/home/username/.m2/repository/org/drools/drools-templates/6.5.0.Final/drools-templates-6.5.0.Final.jar
[ERROR] urls[38] = file:/home/username/.m2/repository/org/drools/drools-scorecards/6.5.0.Final/drools-scorecards-6.5.0.Final.jar
[ERROR] urls[39] = file:/home/username/.m2/repository/org/drools/drools-pmml/6.5.0.Final/drools-pmml-6.5.0.Final.jar
[ERROR] urls[40] = file:/home/username/.m2/repository/com/sun/xml/bind/jaxb-impl/2.2.11/jaxb-impl-2.2.11.jar
[ERROR] urls[41] = file:/home/username/.m2/repository/com/sun/xml/bind/jaxb-core/2.2.11/jaxb-core-2.2.11.jar
[ERROR] urls[42] = file:/home/username/.m2/repository/org/jbpm/jbpm-bpmn2/6.5.0.Final/jbpm-bpmn2-6.5.0.Final.jar
[ERROR] urls[43] = file:/home/username/.m2/repository/org/jbpm/jbpm-flow-builder/6.5.0.Final/jbpm-flow-builder-6.5.0.Final.jar
[ERROR] urls[44] = file:/home/username/.m2/repository/org/jbpm/jbpm-flow/6.5.0.Final/jbpm-flow-6.5.0.Final.jar
[ERROR] urls[45] = file:/home/username/.m2/repository/joda-time/joda-time/1.6.2/joda-time-1.6.2.jar
[ERROR] urls[46] = file:/home/username/.m2/repository/org/drools/drools-workbench-models-guided-dtable/6.5.0.Final/drools-workbench-models-guided-dtable-6.5.0.Final.jar
[ERROR] urls[47] = file:/home/username/.m2/repository/org/drools/drools-workbench-models-datamodel-api/6.5.0.Final/drools-workbench-models-datamodel-api-6.5.0.Final.jar
[ERROR] urls[48] = file:/home/username/.m2/repository/org/drools/drools-workbench-models-commons/6.5.0.Final/drools-workbench-models-commons-6.5.0.Final.jar
[ERROR] urls[49] = file:/home/username/.m2/repository/org/apache/commons/commons-lang3/3.1/commons-lang3-3.1.jar
[ERROR] urls[50] = file:/home/username/.m2/repository/org/drools/drools-workbench-models-guided-template/6.5.0.Final/drools-workbench-models-guided-template-6.5.0.Final.jar
[ERROR] urls[51] = file:/home/username/.m2/repository/org/drools/drools-workbench-models-guided-scorecard/6.5.0.Final/drools-workbench-models-guided-scorecard-6.5.0.Final.jar
[ERROR] urls[52] = file:/home/username/.m2/repository/org/slf4j/slf4j-simple/1.7.2/slf4j-simple-1.7.2.jar
[ERROR] Number of foreign imports: 1
[ERROR] import: Entry[import from realm ClassRealm[maven.api, parent: null]]
[ERROR]
[ERROR] -----------------------------------------------------: java.util.Unkown
[ERROR] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginContainerException
[ERROR]
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR] mvn <goals> -rf :salve_drools
If the type decleration does not use the symbol ie:
package dialogue; import java.util.Unkown declare DefaultReply symbol:String end
the error message becomes a lot better:
[ERROR] Unable to build KieBaseModel:rules
Error importing : 'java.util.Unkown'
[ function parseUtteranceparseUtterance (line:-5): Only a type can be imported. java.util.Unkown resolves to a package
]
Rule Compilation error : [Rule name='Parse raw user utterence into parsed utterance (something we understand)']
dialogue/Rule_Parse_raw_user_utterence_into_parsed_utterance_$u40$something_we_understand$u41$1360960339.java (2:300) : Only a type can be imported. java.util.Unkown resolves to a package
dialogue/Rule_Parse_raw_user_utterence_into_parsed_utterance_$u40$something_we_understand$u41$1360960339.java (2:1068) : The import dialogue.ParseUtterance cannot be resolved
dialogue/Rule_Parse_raw_user_utterence_into_parsed_utterance_$u40$something_we_understand$u41$1360960339.java (8:1848) : The method parseUtterance(PatternDatabase, UnparsedUserUtterance, String) is undefined for the type Rule_Parse_raw_user_utterence_into_parsed_utterance_$u40$something_we_understand$u41$1360960339
Rule Compilation error : [Rule name='Pick out the first symbol and insert it']
dialogue/Rule_Pick_out_the_first_symbol_and_insert_it851572034.java (2:300) : Only a type can be imported. java.util.Unkown resolves to a package
_ [... other rules that fail (not sure if I can show them) .. ]_
Error importing : 'dialogue.ParseUtterance.parseUtterance'
[ERROR] Message [id=1, kieBase=rules, level=ERROR, path=model.drl, line=1, column=0
text=Error importing : 'java.util.Unkown']
[ERROR] Message [id=2, kieBase=rules, level=ERROR, path=rules.drl, line=-5, column=0
text=[ function parseUtteranceparseUtterance (line:-5): Only a type can be imported. java.util.Unkown resolves to a package
]]
[ERROR] Message [id=3, kieBase=rules, level=ERROR, path=rules.drl, line=32, column=0
text=Rule Compilation error Only a type can be imported. java.util.Unkown resolves to a package
The import dialogue.ParseUtterance cannot be resolved
The method parseUtterance(PatternDatabase, UnparsedUserUtterance, String) is undefined for the type Rule_Parse_raw_user_utterence_into_parsed_utterance_$u40$something_we_understand$u41$1360960339]
[ERROR] Message [id=4, kieBase=rules, level=ERROR, path=rules.drl, line=81, column=0
text=Rule Compilation error Only a type can be imported. java.util.Unkown resolves to a package
The import dialogue.ParseUtterance cannot be resolved]
[ERROR] Message [id=5, kieBase=rules, level=ERROR, path=rules.drl, line=7, column=0
text=Rule Compilation error Only a type can be imported. java.util.Unkown resolves to a package
The import dialogue.ParseUtterance cannot be resolved
The constructor DefaultReply(Symbol) is undefined]
[ERROR] Message [id=6, kieBase=rules, level=ERROR, path=rules.drl, line=90, column=0
text=Rule Compilation error Only a type can be imported. java.util.Unkown resolves to a package
The import dialogue.ParseUtterance cannot be resolved]
[ERROR] Message [id=7, kieBase=rules, level=ERROR, path=rules.drl, line=72, column=0
text=Rule Compilation error Only a type can be imported. java.util.Unkown resolves to a package
The import dialogue.ParseUtterance cannot be resolved
The method randomLiteral(Random) is undefined for the type String]
[ERROR] Message [id=8, kieBase=rules, level=ERROR, path=rules.drl, line=-1, column=0
text=Error importing : 'dialogue.ParseUtterance.parseUtterance']
What I'm missing from the first case is the file name where the linking fails, and the line numbers where Unkown occurs.
It should also be much more obvious about what symbol can't be found.
Dumping each jar that is used is not very helpful since most people will use maven. It should dump instead all the maven dependencies.