2012-08-08 3 views
0

J'essaye de courir l'application très simple en utilisant Drools et pendant quelques heures maintenant ne peux pas installer le pom.xml avec toutes les dépendances.Drools hello monde maven dépendances

Voici à quoi il ressemble maintenant:

<dependencies> 

    <!-- Drools engine --> 
    <dependency> 
     <groupId>org.drools</groupId> 
     <artifactId>drools-core</artifactId> 
     <version>5.4.0.Final</version> 
    </dependency> 

    <dependency> 
     <groupId>org.drools</groupId> 
     <artifactId>drools-compiler</artifactId> 
     <version>5.4.0.Final</version> 
    </dependency>  

    <!-- Test --> 
    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>4.7</version> 
     <scope>test</scope> 
    </dependency> 
</dependencies> 

Tout comme dans https://community.jboss.org/wiki/DroolsMaven

Mais ce que je reçois:

org.drools.RuntimeDroolsException: Unable to load dialect 'org.drools.rule.builder.dialect.java.JavaDialectConfiguration:java:org.drools.rule.builder.dialect.java.JavaDialectConfiguration' 
at org.drools.compiler.PackageBuilderConfiguration.addDialect(PackageBuilderConfiguration.java:313) 
at org.drools.compiler.PackageBuilderConfiguration.buildDialectConfigurationMap(PackageBuilderConfiguration.java:298) 
at org.drools.compiler.PackageBuilderConfiguration.init(PackageBuilderConfiguration.java:187) 
at org.drools.compiler.PackageBuilderConfiguration.<init>(PackageBuilderConfiguration.java:160) 
at org.drools.builder.impl.KnowledgeBuilderFactoryServiceImpl.newKnowledgeBuilderConfiguration(KnowledgeBuilderFactoryServiceImpl.java:26) 
at org.drools.builder.KnowledgeBuilderFactory.newKnowledgeBuilderConfiguration(KnowledgeBuilderFactory.java:85) 
yada-yada-yada 

Caused by: java.lang.RuntimeException: The Janino jar is not in the classpath 

Si j'essaie d'ajouter Janino je reçois une autre exception au sujet quelques classes manquantes (je ne pense pas que je devrais ajouter Janino ici de toute façon car cela devrait être une dépendance de quelque chose d'autre). Est-ce que quelque chose me manque dans mon pom?

Merci!

Leonty

+0

Avez-vous regardé la hiérarchie des dépendances pour vous assurer que Janino est réellement introduit par quelque chose d'autre? –

+0

Oui, et ce n'est pas là. Ma question est ce que je dois ajouter pour tirer Janino (sans l'ajouter explicitement). – Leonti

Répondre

2

Par défaut, Drools compilateur utilise le compilateur Eclipse (JavaDialectConfiguration.ECLIPSE) pour le dialecte java qui est une dépendance transitive:

<dependency> 
    <groupId>org.eclipse.jdt.core.compiler</groupId> 
    <artifactId>ecj</artifactId> 
</dependency> 

Cependant, si vous préférez le compilateur janino (JavaDialectConfiguration.JANINO), vous besoin d'ajouter la dépendance janino vous parce qu'il est une dépendance transitive en option:

<dependency> 
    <groupId>org.codehaus.janino</groupId> 
    <artifactId>janino</artifactId> 
    <optional>true</optional> 
</dependency> 

Regardez la pom droolsjbpm-parent pour savoir w quelle version à utiliser.

1

se sont avérés juste la bonne version de Janino est nécessaire pour Drools 5.4.0 final: 2.5.16 versions plus récentes classe chance utilisée dans Drools.

<dependencies> 

    <!-- Drools engine --> 
    <dependency> 
     <groupId>org.drools</groupId> 
     <artifactId>drools-core</artifactId> 
     <version>5.4.0.Final</version> 
    </dependency> 

    <dependency> 
     <groupId>org.drools</groupId> 
     <artifactId>drools-compiler</artifactId> 
     <version>5.4.0.Final</version> 
    </dependency> 

    <dependency> 
     <groupId>org.codehaus.janino</groupId> 
     <artifactId>janino</artifactId> 
     <version>2.5.16</version> 
    </dependency> 

    <!-- Test --> 
    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>4.7</version> 
     <scope>test</scope> 
    </dependency> 

</dependencies>