使用Maven清除决策表预编译

时间:2016-04-25 11:38:02

标签: excel maven compilation spreadsheet drools

根据drools 6.3 documentation, section 4.2.2.3

  

Maven的KIE插件可确保工件资源经过验证和预编译,建议始终使用它。要使用该插件,只需将其添加到Maven pom.xml的构建部分

因此,我的pom.xml是:

<dependencies>
    <dependency>
        <groupId>org.drools</groupId>
        <artifactId>drools-compiler</artifactId>
        <version>6.3.0.Final-redhat-9</version>
    </dependency>
    <dependency>
        <groupId>org.drools</groupId>
        <artifactId>drools-decisiontables</artifactId>
        <version>6.3.0.Final-redhat-9</version>
    </dependency>
</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.kie</groupId>
            <artifactId>kie-maven-plugin</artifactId>
            <version>6.3.0.Final-redhat-9</version>
            <extensions>true</extensions>
        </plugin>
    </plugins>
</build>

我在rules.xls放置了我的决策表文件,让我们称之为src/main/resources/my/company/package/。我的Maven项目中唯一的另一个文件是kmodule.xml文件,该文件位于src/main/resources/META-INF/并包含最小代码:

<?xml version="1.0" encoding="UTF-8"?>
<kmodule xmlns="http://jboss.org/kie/6.0.0/kmodule"/>

因为我删除了所有其他依赖项(包括包含决策表中使用的Java对象的依赖项),所以我希望drools能够启动类型为cannot find symbol的错误消息。

但是当我尝试使用Maven clean install项目时,编译成功,创建了一个JAR文件,它确实包含kmodule.xmlrules.xls个文件。放置它们。编译期间没有生成其他文件,没有错误,没有警告,没有。只是一个包含我的文件的简单JAR,MANIFEST.MF文件和maven下的META-INF目录。

在maven trace中,这里是激活的插件(按此顺序):

[INFO] --- maven-clean-plugin:2.4.1:clean
[INFO] --- maven-resources-plugin:2.5:resources
[INFO] --- maven-compiler-plugin:2.3.2:compile
[INFO] --- maven-resources-plugin:2.5:testResources
[INFO] --- maven-compiler-plugin:2.3.2:testCompile
[INFO] --- maven-surefire-plugin:2.10:test
[INFO] --- maven-jar-plugin:2.3.2:jar
[INFO] --- maven-install-plugin:2.3.1:install

没有关于kie插件的事情。是否有任何提示在构建时激活规则编译?

2 个答案:

答案 0 :(得分:0)

为了激活kie-maven-plugin,还需要在pom.xml中指定正确的包装类型

<packaging>kjar</packaging>

答案 1 :(得分:0)

我终于找到了激活插件的方法。我把它添加到我的pom.xml:

<pluginManagement>
  <plugins>
    <plugin>
      <groupId>org.kie</groupId>
      <artifactId>kie-maven-plugin</artifactId>
      <version>6.3.0.Final-redhat-9</version>
      <extensions>true</extensions>
      <executions>
        <execution>
          <id>brms-rules-compilation</id>
          <phase>generate-resources</phase>
          <goals>
            <goal>build</goal>
          </goals>
          <inherited>false</inherited>
          <configuration>
          </configuration>
        </execution>
      </executions>
    </plugin>
  </plugins>
</pluginManagement>

现在获得Drools编译跟踪,包括:

[INFO] --- kie-maven-plugin:6.3.0.Final-redhat-9:build
[main] INFO org.drools.compiler.kie.builder.impl.KieRepositoryImpl - Adding KieModule from resource: FileResource[...]

我不是Maven大师,这个解决方案可能不是最好的(我甚至不完全理解我作为Maven视角写的内容),所以我很乐意让一个更容易的。