從 2.0 版開始加載項管理器,您現在可以部署自動更新JMP只需單擊一下即可為您的用戶添加插件。 加載項管理器使您能夠部署到測試和生產位置。 出於加載項管理器的目的,部署是將加載項移出(或推送)給用戶的過程。
您可以使用插件管理器的首選項為 TEST 和 PROD 定義默認部署位置。 您還可以在“常規信息”選項卡的“文件夾位置”部分中為每個加載項設置不同的 TEST 和 PROD 位置。在您的加載項中創建了一個“customMetadata.jsl”腳本文件,其中包含多個信息片段的關聯數組。 關聯數組中的一個鍵稱為“狀態”,它包含當前構建的位置,可以是 DEV、TEST 或 PROD。 您可以在我的下一篇博文中找到有關添加您自己的自定義元數據的更多信息,加載項管理器,第 3 部分:高級自定義.
在 DEV 位置構建加載項
部署位置是指向特定暫存區域的文件夾路徑。 在 Add-In Manager 中,有三個暫存區域(稱為部署位置):DEV、TEST 和 PROD。 DEV 位置是最初創建加載項的位置。 這個位置是您(開發人員)測試您的加載項並試一試的好地方。 有關如何在此 DEV 位置構建加載項的信息,請查看我以前的博客,插件管理器,第 1 部分:定義和構建 JMP 插件.
將加載項部署到測試位置
如果您需要一個或多個用戶來測試您的加載項的特定版本,但您還沒有準備好將其推送給所有人,您可以將您的加載項部署到 TEST 部署位置並提供將此加載項安裝到用戶的路徑。
在將加載項部署到 TEST 位置之前,請確保您已在文件夾位置部分的 TEST 選項卡中定義了 TEST 部署位置。
單擊 Deploy 下拉按鈕並選擇“Deploy TEST”以將加載項複製到 TEST 部署文件夾。 每次將 TEST 加載項部署到 TEST 部署文件夾時,它都會被覆蓋。
將加載項部署到 PROD 位置
完成所有測試以準備發布新版本的加載項後,您可以部署加載項
在將加載項部署到 PROD 位置之前,請確保在文件夾位置部分的 PROD 選項卡中定義了 PROD 部署位置。 如果您使用更新檢查腳本,請確保 PROD 元數據文件夾使用服務器路徑,因為用戶在檢查更新時需要能夠訪問此路徑。
單擊“部署”下拉按鈕並選擇“部署 PROD”以將加載項複製到狀態設置為“PROD”的 PROD 部署文件夾。 以前的 PROD 加載項將存檔到 PROD 存檔文件夾,新的 PROD 加載項將取而代之。

部署到 PROD 時,PROD 元數據文件夾中的關聯數組腳本“publishedAddins.jsl”將使用已部署加載項的構建日期進行更新。 可以使用 updateCheck 腳本查詢此信息,該腳本可以在 Deployment Preferences 中打開。
下面是一個示例“publishedAddins.jsl”腳本文件,其中包含兩個已發布的加載項。 您永遠不需要查看或編輯此文件,但最好知道它在幕後是如何工作的。
Associative Array(
List(
List( "com.jmp.juchil.myjmpaddin1",
Associative Array(
List(
List( "filename", "My First JMP Add-In.jmpaddin" ),
List( "folder", "\\server\share\Add-In Depot\Production\" ),
List( "pubDate", 3594027166 )
)
)
),
List( "com.jmp.juchil.myjmpaddin2",
Associative Array(
List(
List( "filename", "My Second JMP Add-In.jmpaddin" ),
List( "folder", "\\server\share\Add-In Depot\Production\" ),
List( "pubDate", 3594026242 )
)
)
)
)
)
更新檢查腳本
為了使加載項自動更新,您需要打開“包括更新檢查腳本”首選項。 啟用此首選項後,名為“updateCheck.jsl”的腳本將包含在加載項的頂級文件夾中。 您可以通過編輯加載項管理器主目錄中“模板腳本”目錄中的“updateCheck.jsl”文件來更改默認腳本。 請務必在編輯此文件之前對其進行複制。
現有的“updateCheck.jsl”文件檢查上一節中討論的 PROD 元數據關聯數組。 它使用自定義元數據文件的“buildDate”鍵來檢查安裝的版本是否早於可用的發布版本。 由於更新腳本依賴於自定義元數據文件,因此如果您使用部署功能,請務必打開“創建元數據文件”。
您可以使用下面的 Include 語句來使用此腳本。 您將需要更改 ID 以匹配您的加載項的 ID。 您可以在命令腳本的開頭或在 ButtonBox 腳本中使用此更新檢查來檢查新版本。 但是,從 JMP 13 開始,在 addinLoad.jsl 腳本中使用此腳本將不起作用。
Include( "$ADDIN_HOME(com.jmp.myaddin)\updateCheck.jsl" );
com.jmp.juchil.addinmanager:checkForUpdate();
複製後,您可以在源文件夾中編輯“updateCheck.jsl”腳本,或者您可以編輯從加載項管理器主文件夾中的模板腳本文件夾中使用的原始副本。
使用關聯數組檢查更新的概念改編自@brady_brady的使用帶有發布日期的表格的方法。 該方法在@Jeff_Perkinson的帖子如何編寫自更新 JMP 插件.
這篇博文是三部分系列的第二部分,介紹如何定義和構建加載項,向用戶部署加載項,以及進行高級定制在加載項管理器中可用。我希望你能找到我的加載項管理器插件有用!