Drools 文檔(安裝和設置core&IDE)

安裝和使用

Drools提供了一個基於eclipse的IDE(可選),但其核心只須要Java 1.5(Java SE)。html

開始的一種簡單方法是下載並安裝Eclipse插件 — 這還須要安裝Eclipse GEF框架(若是你尚未安裝Eclipse GEF框架,請參見下面)。這將爲你提供所需的全部依賴項:你能夠簡單地建立一個新的規則項目,一切都會爲你完成,請參閱規則工做臺和IDE的一章,以得到關於此的詳細說明,安裝Eclipse插件一般很是簡單,只需將文件解壓縮到Eclipse插件目錄中。git

使用Eclipse插件不是必須的,規則文件只是文本輸入(或電子表格),IDE(也稱爲規則工做臺)只是一種便利,人們在不少方面集成了規則引擎,沒有「一刀切」。github

或者,你能夠下載二進制發行版,並在項目類路徑中包含相關的jar。bootstrap

依賴和JAR

Drools被分解爲幾個模塊,一些在開發/編譯期間須要,一些在運行時須要。在許多狀況下,人們只想在運行時包含全部的依賴項,這是比較好的方法,它讓你擁有最大的靈活性。然而,有些人可能更喜歡將他們的「運行時」縮減到最低限度,由於他們將以二進制形式部署規則 — 這也是可能的,核心運行時引擎能夠很是緊湊,而且只須要在3個JAR文件中使用幾個100kb。segmentfault

下面是組成JBoss Drools的重要庫的描述:api

  • knowledge-api.jar - 這提供了接口和工廠,它還有助於清楚地顯示什麼是用戶API,什麼是引擎API。
  • knowledge-internal-api.jar - 這提供了內部接口和工廠。
  • drools-core.jar - 這是核心引擎,運行時組件。包含RETE引擎和LEAPS引擎,若是你正在預編譯規則(並經過包或RuleBase對象部署),這是唯一的運行時依賴項。
  • drools-compiler.jar - 它包含編譯器/構建器組件以獲取規則源,並構建可執行的規則庫,這一般是應用程序的運行時依賴項,但若是你正在預編譯規則,則不須要,這個依賴於drools-core。
  • drools-jsr94.jar - 這是兼容JSR-94的實現,本質上是drools-compiler組件的上一層,注意,因爲JSR-94規範的性質,並非全部的特性均可以經過這個接口輕鬆公開。在某些狀況下,直接訪問Drools API會更容易,可是在某些環境中JSR-94是強制性的。
  • drools-decisiontables.jar - 這是決策表的「編譯器」組件,它使用drools-compiler組件,它同時支持excel和CSV輸入格式。

上面的組件還須要一些其餘的依賴項,其中大部分是針對drool-compiler、drool-jsr94或drool-decisiontables模塊的,須要注意的一些關鍵內容是提供電子表格解析能力的「POI」和爲規則語言自己提供解析的「antlr」。瀏覽器

若是你在J2EE或servlet容器中使用Drools,而且遇到「JDT」的類路徑問題,那麼你能夠切換到janino編譯器,設置系統屬性「drool.compiler」:例如: -Ddrools.compiler=JANINO

有關發佈版中依賴項的最新信息,請參閱發佈的POM,該POM能夠在Maven存儲庫中找到。框架

使用Maven、Gradle、Ivy、Buildr或Ant

jar包也能夠在中央Maven存儲庫中得到(也能夠在JBoss Maven存儲庫)。less

若是你使用Maven,請在項目的pom.xml中添加KIE和Drools依賴項,像這樣:eclipse

<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>org.drools</groupId>
      <artifactId>drools-bom</artifactId>
      <type>pom</type>
      <version>...</version>
      <scope>import</scope>
    </dependency>
    ...
  </dependencies>
</dependencyManagement>
<dependencies>
  <dependency>
    <groupId>org.kie</groupId>
    <artifactId>kie-api</artifactId>
  </dependency>
  <dependency>
    <groupId>org.drools</groupId>
    <artifactId>drools-compiler</artifactId>
    <scope>runtime</scope>
  </dependency>
  ...
<dependencies>

這與Gradle、Ivy和Buildr同樣,要識別最新版本,請檢查Maven存儲庫。

若是你仍然在使用Ant(沒有Ivy),請從下載zip的二進制目錄中複製全部jar,並手動驗證類路徑不包含重複的jar。

runtime

這裏提到的「runtime」需求是若是你將規則部署爲二進制形式(做爲KnowledgePackage對象或KnowledgeBase對象等),這是一個可選的特性,容許你保持運行時很是輕,你可使用drools-compiler來生成「進程外」的規則包,而後將它們部署到運行時系統中,這個運行時系統只須要drools-core.jar和knowledge-api來執行,這是一種可選的部署模式,許多人不須要「削減」他們的應用程序這麼多,但它是某些環境下的理想選擇。

安裝IDE(規則工做臺)

規則工做臺(用於Eclipse)要求你具備Eclipse 3.4或更高版本,以及Eclipse GEF 3.4或更高版本,你能夠經過下載插件或使用更新站點來安裝它。

另外一種選擇是使用JBoss IDE,它附帶了預先打包的全部插件需求,以及其餘獨立於規則的工具,你能夠選擇只從JBoss IDE附帶的「包」中安裝規則。

安裝GEF(必需的依賴項)

GEF是Eclipse圖形編輯框架,用於在插件中查看圖形組件。

若是你沒有安裝GEF,你可使用內置的更新機制安裝它(或者從Eclipse.org網站下載GEF,不建議),JBoss IDE已經有了GEF, Eclipse的許多其餘「發行版」也是如此,所以這一步對某些人來講多是多餘的。

從Help菜單打開Help→Software updates…​→Available Software→Add Site…​,Location是:http://download.eclipse.org/tools/gef/updates/releases/

接下來選擇GEF插件:

install_gef.png

點擊next,並贊成安裝插件(可能須要Eclipse從新啓動),完成以後,你就能夠繼續安裝規則插件了。

從zip文件安裝GEF

要從zip文件安裝,請下載並解壓該文件,在zip中,你將看到一個插件目錄和插件JAR自己,將插件JAR放到Eclipse應用程序插件目錄中,而後從新啓動Eclipse。

從zip文件安裝Drools插件

從下面的連接下載Drools Eclipse IDE插件,在你的主eclipse文件夾中解壓縮下載的文件(不要只是複製文件,將其解壓縮,以便特性和插件jar最終位於eclipse的特性和插件目錄中)並(從新)啓動eclipse。

https://www.drools.org/download/download.html

要檢查安裝是否成功,請嘗試打開Drools透視圖:單擊Eclipse窗口右上角的「Open Perspective」按鈕,選擇「Other…」並選擇Drools透視圖。若是你找不到Drools透視圖做爲可能的透視圖之一,那麼安裝可能未成功。檢查是否正確地執行了所需的每一個步驟:你有Eclipse的正確版本(3.4.x)嗎?是否安裝了Eclipse GEF(檢查org.eclipse.gef_3.4..jar存在於eclipse根文件夾的插件目錄中)?你是否正確地提取了Drools Eclipse插件(檢查org.drools.eclipse_.jar存在於eclipse根文件夾的插件目錄中)?若是你找不到問題,請嘗試聯絡咱們(例如在irc或在用戶郵箱列表上),更多資料可在此網頁找到:

https://www.drools.org/

Drools runtime

Drools runtime是文件系統上的JAR集合,表明Drools項目JAR的一個特定版本,要建立一個runtime,你必須將IDE指向你選擇的版本,若是你想基於插件自己中包含的最新Drools項目jar建立一個新的runtime,你也能夠很容易地作到這一點,你須要爲你的Eclipse工做區指定一個默認的Drools runtime,可是每一個單獨的項目均可以覆蓋默認值,併爲特定的項目選擇適當的runtime。

定義Drools runtime

你須要使用Eclipse首選項視圖定義一個或多個Drools runtime,要打開你的首選項,請在「菜單」窗口中選擇「Preferences」菜單項,一個新的首選項對話框將顯示你的全部首選項,在對話框的左側,在Drools類別下,選擇「Installed Drools runtimes」。右邊的面板應該顯示當前定義的Drools runtimes,若是你尚未定義任何runtimes,它應該以下圖所示。

drools-runtimes.png

要定義一個新的Drools runtime,單擊add按鈕,彈出以下所示的對話框,須要你的runtime名稱和文件系統上能夠找到它的位置。

drools-runtimes-add.png

通常來講,你有兩個選擇:

  1. 若是你只想使用Drools Eclipse插件中包含的默認JAR,你能夠經過單擊「Create a new Drools 5 runtime …」按鈕自動建立一個新的Drools runtime,會出現一個文件瀏覽器,要求你選擇文件系統上要建立此runtime的文件夾,而後插件會自動將全部須要的依賴項複製到指定的文件夾中,選擇此文件夾後,對話框應以下圖所示。
  2. 若是你想使用Drools項目的一個特定版本,你應該在你的文件系統上建立一個包含全部必需的Drools庫和依賴項的文件夾,與其如上所述建立一個新的Drools runtime,不如給runtime一個名稱並選擇包含全部所需jar的文件夾的位置。

drools-runtimes-add2.png

單擊OK按鈕後,runtime應該顯示在已安裝的Drools runtime表中,以下所示。單擊新建立的runtime前面的複選框,使其成爲默認的Drools runtime,默認的Drools runtime將用做全部沒有選擇特定於項目的runtime的Drools項目的runtime。

drools-runtimes2.png

你能夠根據須要添加任意數量的Drools runtime,例以下面的屏幕截圖顯示了一個配置,其中定義了三個runtime:一個Drools 4.0.7 runtime,一個Drools 5.0.0 runtime和一個Drools 5.0.0.SNAPSHOT runtime,Drools 5.0.0 runtime被選擇爲默認runtime。

drools-runtimes3.png

請注意,若是更改了默認runtime,則須要從新啓動Eclipse,而且須要確保全部使用默認runtime的項目都相應地更新了它們的類路徑。

爲Drools項目選擇runtime

每當你建立Drools項目時(使用「New Drools Project」嚮導或使用「Convert to Drools Project」操做將現有Java項目轉換爲Drools項目,當你在Drools透視圖中右鍵單擊現有Java項目時,會顯示此操做),插件將自動將全部須要的jar添加到項目的類路徑中。

當建立一個新的Drools項目時,插件將自動爲該項目使用默認的Drools runtime,除非你指定了一個特定於項目的runtime。你能夠在「New Drools Project」嚮導的最後一步中完成這項工做,以下所示,方法是取消「Use default Drools runtime」複選框,並在下拉框中選擇適當的runtime。若是單擊「Configure workspace settings …​」連接,將打開顯示當前安裝的Drools runtime的工做區首選項,以便在其中添加新的runtime。

drools-runtimes-newproject.png

你能夠隨時更改Drools項目的runtime,方法是打開項目屬性(右鍵單擊項目並選擇「properties」)並選擇Drools類別,以下所示。選中「Enable project specific settings」複選框,並從下拉框中選擇適當的runtime。若是單擊「Configure workspace settings …​」連接,將打開顯示當前安裝的Drools runtime的工做區首選項,以便在其中添加新的runtime。若是取消選中「Enable project specific settings」複選框,它將使用全局首選項中定義的默認runtime。

drools-runtimes-project.png

從源代碼構建

獲取源代碼

在JBoss Maven存儲庫中,每一個Maven工件的源代碼均可以做爲源代碼JAR文件使用,下載的zip文件中也包含了相同的源代碼jar文件,可是,若是你想從源代碼構建,強烈建議從源代碼控制中獲取源代碼。

Drools和jBPM使用Git進行源代碼控制,blessed git存儲庫位於GitHub上:

Git容許你對咱們的代碼進行fork,獨立地對其進行我的更改,但仍然會按期合併咱們的最新更改,並有選擇地與咱們共享你的更改,要了解更多關於git的信息,請閱讀免費書籍Git Pro

構建源代碼

在本質上,從源代碼構建很是簡單,例如,若是你想構建guvnor項目:

$ git clone git@github.com:kiegroup/guvnor.git
...
$ cd guvnor
$ mvn clean install -DskipTests -Dfull
...

可是,這裏有不少潛在的缺陷,因此若是你真的想從源代碼構建並可能爲項目作出貢獻,請遵循droolsjbpm-build-bootstrap中README文件中的說明。

Eclipse

導入Eclipse項目

經過生成Eclipse項目文件,如今能夠將它們導入Eclipse,啓動Eclipse時,在subversion檢出的根目錄中打開工做區。

eclipse_import1.jpg

eclipse_import2.jpg

eclipse_import3.jpg

eclipse_import4.jpg

在調用mvn install時,下載了全部項目依賴項並將其添加到本地Maven存儲庫,Eclipse沒法找到這些依賴項,除非你告訴它存儲庫在哪裏,爲此,設置一個M2_REPO classpath變量。

eclipse_import6.jpg

eclipse_import7.jpg

eclipse_import8.jpg

eclipse_import9.jpg


上一篇:Drools 文檔(參與)

下一篇:Drools 文檔(KIE概述)

相關文章
相關標籤/搜索