我已经使用exist eXide接口创建了自己的类型库应用程序。使用exide ui下载了应用程序包( xar文件)。
为了通过docker文件在构建服务器上部署包,我使用了自动部署机制:
我将我的库应用程序包xar (zip)文件复制到入口点命令之前的/exist/autodeploy文件夹中(例如,在启动existdb jetty之前)。
一切正常,库得到部署。
然而,这只起作用一次。使用自动部署机制部署较新版本的库的任何其他部署都会在expath-repo.log文件中记录消息:
Application package "my library name" already installed. Skipping. 我曾尝试将卸载命令(使用repo:undeploy, repo:unistall)放到pre-install.xql脚本中,但是尽管该脚本在从exide编辑器中执行时会卸载库,但在自动部署期间似乎没有触发。
如何强制自动部署重新部署包而不是跳过其安装,有什么选择吗?
如果不是,我应该采取什么方向来自动化重新部署库的过程?
非常感谢你的见解。
发布于 2020-04-02 17:46:27
查看生成日志消息的代码,您会看到:
if (packages != null
&& (!enforceDeps || pkgVersion.equals(packages.latest().getVersion()))) {
LOG.info("Application package " + name + " already installed. Skipping.");
final Package pkg = packages.latest();
return Optional.of(getTargetCollection(broker, pkg, getPackageDir(pkg)));
}看起来你只有在两种情况下才会得到这样的结果:
installed.
https://stackoverflow.com/questions/60920535
复制相似问题