跳到主要内容

依赖管理

依赖很常见。你需要与另一个插件集成。你不想重写别人已经解决的相同代码。无论你做什么,你都需要一种有效管理依赖的方法。

插件依赖

在主类中使用@Plugin注解来添加对另一个插件的依赖。让我们简单回顾一下:

@Plugin(
id = "myfirstplugin",
name = "My Plugin",
version = "0.1.0"
)
public class VelocityTest {
// ...
}

假设我们有一个依赖,叫它wonderplugin。要将其添加为依赖,执行以下操作:

@Plugin(
id = "myfirstplugin",
name = "My Plugin",
version = "0.1.0",
dependencies = {
@Dependency(id = "wonderplugin")
}
)
public class VelocityTest {
// ...
}

依赖的id与其他插件的@Plugin注解中的id相同。这就是为什么拥有一个稳定的插件ID很重要。

就这样!现在,你的插件将需要wonderplugin才能加载,并且当它加载时,它将在wonderplugin之后_加载。

要指定多个依赖,用逗号分隔它们: dependencies = {@Dependency(id = "wonderplugin"), @Dependency(id = "otherplugin")}

可选的插件依赖

要使依赖成为可选的,添加optional = true,如下所示:

@Plugin(
id = "myfirstplugin",
name = "My Plugin",
version = "0.1.0",
dependencies = {
@Dependency(id = "wonderplugin", optional = true)
}
)
public class VelocityTest {
// ...
}

外部依赖

警告

请记住重定位你打包的任何依赖。未能重定位将导致与其他插件的依赖冲突。

对其他库的依赖不由Velocity处理。你需要使用你的构建系统添加它们。

如果你的插件不打包其依赖,而是从目录中附加它们,你可以使用PluginManageraddToClasspath 方法,而不是使用反射来访问ClassLoader