本文分享了由Guilherme Coelho編寫的關于AnyLogic的使用實踐技巧,希望能為正在學習或使用AnyLogic的用戶提供幫助。
原文:https://www.theanylogicmodeler.com/post/template-how-to-write-a-tips-blog-postpost/template-how-to-write-a-tips-blog-post
作者:Guilherme Coelho
更新:Mar 9, 2022
閱讀時間:6 min
本文是Guilherme Coelho的一篇特邀博客,主要關于如何設置Maven以管理和準備與Anylogic一起使用的外部依賴項的教程。
先決條件:本文介紹了Java編程、AnyLogic及其依賴管理的一些高級方面。在這之前,請確保您了解如何向AnyLogic添加和導入外部依賴項。
盡管AnyLogic提供了一系列工具來構建仿真模型,但您可能需要使用一些非常特定的庫來進行矩陣計算、優化車輛路線,甚至需要連接一些外部求解器才可以在仿真期間執行決策。
如果涉及到這一點,人們可能只想下載JAR文件并將其放置到模型根文件夾中,之后按照 AnyLogic幫助中的說明將其添加到AnyLogic模型依賴項列表中。盡管它對于非常小的項目來說效果很好,但隨著項目規模和復雜性的增加,這會變得非常麻煩。
在沒有這些工具的情況下,最壞的情況是我們可能需要手動下載項目的所有依賴項以及依賴項的依賴項,其中不必要的文件將占用項目存儲庫。
由于AnyLogic使用Java作為編程語言,我將介紹如何設置Maven來進行依賴關系管理。Maven是Java世界中最受歡迎的依賴關系管理工具之一。
此外,我們將使用AnyLogic中提供的“External JAR files”模型。您可以在這里找到它:Example Models > Models from 'The Big Book of Simulation' > Java for Anylogic users.。
該模型的目的是教我們如何將Jama線性代數包添加到模型中并執行矩陣乘法。
在我們真正開始之前,請確保您已經安裝好所有內容并準備就緒。因此,請遵循以下步驟:
1、 下載并安裝Java Development Kit(JDK),并確保對應地設置JAVA_HOME和 PATH 環境變量。
打開系統屬性(Win+Pause),選擇“高級(Advanced)”選項卡和“環境變量(Environment Variables)”按鈕。在頂部,您將看到與用戶相關的所有環境變量。添加一個名為JAVA_HOME的新變量,并將其指向JDK安裝路徑。最后,確保PATH變量也指向JDK的bin文件夾。
可參考下方頁面配置Mac的環境。
2、下載并安裝Maven。要安裝它,請將其內容解壓縮到計算機上,并以與之前相同的方式將bin文件夾添加到PATH變量。
一切就緒后,我們可以繼續創建一個新的Maven。接下來的步驟可以在任何支持Java和Maven的IDE上完成,例如VScode或IntelliJ。
在本文中,我們將使用VScode,因此請確保您已經安裝了它。從VScode Extensions選項卡中搜索并安裝“Maven for Java”擴展。
接下來,打開命令選項板并查找“Maven:Create Maven Project”命令。這將提示一些用戶輸入:
用VScode打開創建的文件夾。里面有一個“src”文件夾和“pom.xml”文件。
我們不需要“src”文件夾,因為我們沒有在AnyLogic之外構建任何東西,所以只需刪除它。
在POM文件中,找到
<dependency>
<groupId>gov.nist.math</groupId>
<artifactId>jama</artifactId>
<version>1.0.2</version>
</dependency>
實際上,截至2022年3月,該軟件包已更新。如果您想更新到最新版本,只需在
maven-dependency-plugin
install
copy-dependencies
${basedir}/libs
...
這樣,所有依賴項都將被放置在一個名為“libs”的新文件夾中,該文件夾將位于項目根目錄中。您還可以通過更改
注意:如果您選擇保留“src”文件夾,請確保不要從
一切就緒后,剩下要做的就是命令Maven拉取依賴項并將它們放在正確的位置。為此,只需在CLI上運行命令:
mvn clean install
此命令將確保在新的安裝過程之前刪除所有以前的構建目錄。下載所有內容可能需要一些時間,只需等待幾秒鐘,傳遞即可完成。
如果一切正常,您應該會看到下面這樣的消息,以及在項目目錄中創建的名為“libs”的新文件夾,其中包含名稱為“jama-1.0.2.jar”的文件。
每次添加新的依賴項或者希望使用某些依賴項的較新版本時,都需要運行此程序。最棒的是,您不需要擔心您使用的某個庫的最新版本是否依賴于其他庫。Maven通過自動包含可傳遞的依賴項,避免了發現和指定您自己的依賴項所需的庫的需要。這是專業和高級軟件開發人員(和仿真建模人員)使用它的關鍵原因。
回到AnyLogic“External JAR files”模型,我們需要用剛剛下載的依賴項替換Jama依賴項。為此,首先刪除前一個依賴項,之后在“libs”文件夾中添加一個指向JAR文件的新依賴項。瀏覽文件位置,檢查所需選項以從其原始位置訪問它,并選擇“使用相對路徑”選項。
單擊“構建模型”按鈕檢查是否一切正常。此時,您將能夠運行您的模型,而不會出現任何問題。
祝賀!
總結
請記住,此解決方案不一定適合您的項目。如果您正處于模型開發的開始階段,您可能會跳過所有這些步驟而不會產生任何影響。然而,如果您的模型擴展,或者您必須通過自動化方式運行它,則需要用到這個方法。
對于同一個問題,總有其他解決方案。您只需要平衡每種方法的利弊。
最后,為了讓每個人都更輕松,我準備了一個Github 存儲庫,其中包含本文所涵蓋的所有內容。