提交 eb77e5f2 编写于 作者: D Devin Nusbaum

Upgrade installed optional dependencies if necessary

上级 01f70d42
...@@ -645,17 +645,23 @@ public abstract class PluginManager extends AbstractModelObject implements OnMas ...@@ -645,17 +645,23 @@ public abstract class PluginManager extends AbstractModelObject implements OnMas
ServletContext context = Jenkins.getActiveInstance().servletContext; ServletContext context = Jenkins.getActiveInstance().servletContext;
for (String dependencyToken : dependencyTokens) { for (String dependencyToken : dependencyTokens) {
if (dependencyToken.endsWith(";resolution:=optional")) { String optionalDepTokenSuffix = ";resolution:=optional";
// ignore optional dependencies boolean isOptional = dependencyToken.endsWith(optionalDepTokenSuffix);
continue; if (isOptional) {
dependencyToken = dependencyToken.substring(0, dependencyToken.length() - optionalDepTokenSuffix.length());
} }
String[] artifactIdVersionPair = dependencyToken.split(":"); String[] artifactIdVersionPair = dependencyToken.split(":");
String artifactId = artifactIdVersionPair[0]; String artifactId = artifactIdVersionPair[0];
VersionNumber dependencyVersion = new VersionNumber(artifactIdVersionPair[1]); VersionNumber dependencyVersion = new VersionNumber(artifactIdVersionPair[1]);
PluginManager manager = Jenkins.getInstance().getPluginManager();
PluginManager manager = Jenkins.getActiveInstance().getPluginManager();
VersionNumber installedVersion = manager.getPluginVersion(manager.rootDir, artifactId); VersionNumber installedVersion = manager.getPluginVersion(manager.rootDir, artifactId);
if (isOptional && installedVersion == null) {
// Ignore uninstalled optional dependencies.
continue;
}
if (installedVersion != null && !installedVersion.isOlderThan(dependencyVersion)) { if (installedVersion != null && !installedVersion.isOlderThan(dependencyVersion)) {
// Do not downgrade dependencies that are already installed. // Do not downgrade dependencies that are already installed.
continue; continue;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册