从 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 插件.
这篇博文是三部分系列的第二部分,介绍如何定义和构建加载项,向用户部署加载项,以及进行高级定制在加载项管理器中可用。我希望你能找到我的加载项管理器插件有用!