从2.0版本开始插件管理器,您现在可以部署自动更新联合管理计划只需单击一下即可为您的用户添加插件。 加载项管理器使您能够部署到测试和生产位置。 出于加载项管理器的目的,部署是将加载项移出(或推送)给用户的过程。
您可以使用加载项管理器的首选项定义 TEST 和 PROD 的默认部署位置。 您还可以在“常规信息”选项卡的“文件夹位置”部分中为每个加载项设置不同的 TEST 和 PROD 位置。在您的加载项中创建了一个“customMetadata.jsl”脚本文件,其中包含包含多条信息的关联数组。 关联数组中的一个键称为“状态”,它包含当前构建的位置(DEV、TEST 或 PROD)。 您可以在我的下一篇博文中找到有关添加您自己的自定义元数据的更多信息,加载项管理器,第 3 部分:高级自定义。
在 DEV 位置构建加载项
部署位置是指向特定暂存区域的文件夹路径。 在加载项管理器中,存在三个暂存区域(称为部署位置):DEV、TEST 和 PROD。 DEV 位置是最初创建加载项的位置。 对于开发人员来说,此位置是测试您的加载项并试用它的好地方。 有关如何在此 DEV 位置构建加载项的信息,请查看我之前的博客,插件管理器,第 1 部分:定义和构建 JMP 插件。
将加载项部署到测试位置
如果您需要一个或多个用户来测试加载项的特定版本,但您还没有准备好将其推送给所有人,则可以将您的加载项部署到 TEST 部署位置并提供向用户安装此加载项的路径。
在将加载项部署到测试位置之前,请确保您已在文件夹位置部分的测试选项卡中定义了测试部署位置。
单击“部署”下拉按钮并选择“部署测试”以将加载项复制到测试部署文件夹。 TEST 加载项每次部署到 TEST 部署文件夹时都会被覆盖。
将插件部署到 PROD 位置
完成所有测试以准备发布新版本的加载项后,您可以部署您的加载项
在将加载项部署到 PROD 位置之前,请确保您已在文件夹位置部分的 PROD 选项卡中定义了 PROD 部署位置。 如果您使用更新检查脚本,请确保 PROD 元数据文件夹使用服务器路径,因为用户在检查更新时需要能够访问此路径。
单击“部署”下拉按钮并选择“部署 PROD”,将加载项复制到 PROD 部署文件夹,并将状态设置为“PROD”。 以前的 PROD 加载项将存档到 PROD Archive 文件夹,新的 PROD 加载项将取代它。

部署到 PROD 时,PROD 元数据文件夹中的关联数组脚本“publishedAddins.jsl”将使用已部署加载项的构建日期进行更新。 可以使用 updateCheck 脚本查询此信息,该脚本可以在部署首选项中打开。
下面是一个示例“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”的脚本将包含在加载项的顶级文件夹中。 您可以通过编辑加载项管理器主目录中“Template Scripts”目录中的“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的使用带有发布日期的表格的方法。 该方法描述于@杰夫·珀金森的帖子如何编写自更新 JMP 插件。
这篇博文是由三部分组成的系列文章的第二部分,介绍了如何定义并构建加载项、向用户部署加载项,以及进行高级定制在加载项管理器中可用。我希望你能找到我的插件管理器插件很有用!