【发布时间】:2022-01-23 16:17:09
【问题描述】:
在 Jenkins 中运行测试时,有时 Liquibase 会失败并显示 FileNotFoundException。在本地运行时不会出现这种情况。
奇怪的是,这个错误并不是每次构建都会发生。
例外
java.lang.IllegalStateException at DefaultCacheAwareContextLoaderDelegate.java:132
Caused by: liquibase.exception.UnexpectedLiquibaseException at ServiceLocator.java:129
Caused by: java.io.FileNotFoundException at ZipFile.java:-2
服务定位器
try {
manifests = resourceAccessor.getResourcesAsStream("META-INF/MANIFEST.MF");
if (manifests != null) {
for (InputStream is : manifests) {
Manifest manifest = new Manifest(is);
String attributes = StringUtils.trimToNull(manifest.getMainAttributes().getValue("Liquibase-Package"));
if (attributes != null) {
for (Object value : attributes.split(",")) {
addPackageToScan(value.toString());
}
}
is.close();
}
}
} catch (IOException e) {
throw new UnexpectedLiquibaseException(e);
}
我们正在使用Liquibase 3.8.1。
这可能是什么原因造成的?
【问题讨论】:
-
你在云端运行测试用例吗?
-
@RaushanKumar 是的,我相信。这会如何影响它?
-
@RaushanKumar 这是一个 Amazon EKS 集群。