PF4J 抛出“插件版本不能为空”

Posted

技术标签:

【中文标题】PF4J 抛出“插件版本不能为空”【英文标题】:PF4J throws "Plugin-Version cannot be empty" 【发布时间】:2017-11-11 13:42:00 【问题描述】:

我按照github readme 中的描述设置了一个 PF4J 插件,但没有使用 maven。

我收到以下错误:

[main] ERROR ro.fortsoft.pf4j.DefaultPluginManager - Plugin-Version cannot be empty
ro.fortsoft.pf4j.PluginException: Plugin-Version cannot be empty
at ro.fortsoft.pf4j.ManifestPluginDescriptorFinder.validatePluginDescriptor(ManifestPluginDescriptorFinder.java:135)
at ro.fortsoft.pf4j.ManifestPluginDescriptorFinder.find(ManifestPluginDescriptorFinder.java:50)
at ro.fortsoft.pf4j.DefaultPluginManager.loadPluginDirectory(DefaultPluginManager.java:804)
at ro.fortsoft.pf4j.DefaultPluginManager.loadPlugins(DefaultPluginManager.java:400)
at ...

但我的 MANIFEST.MF 显然包含一个插件版本:

Manifest-Version: 1.0
Built-By: myname
Build-Jdk: 1.8.0_121
Plugin-Class: my.first.WelcomePlugin
Plugin-Id: welcome-plugin
Plugin-Provider: providername
Plugin-Version: 0.0.1

我还添加了 Java SemVer v0.9.0

可能是什么问题?

更新:我将 Plugin-Version 行放在清单文件的顶部,现在它似乎可以工作了..

【问题讨论】:

所以你能回答你自己的问题吗?请这样做。 【参考方案1】:

我将 Plugin-Version 行放在清单文件的顶部,现在它似乎可以工作了:

Plugin-Version: 0.0.1
Manifest-Version: 1.0
Built-By: myname
Build-Jdk: 1.8.0_121
Plugin-Class: my.first.WelcomePlugin
Plugin-Id: welcome-plugin
Plugin-Provider: providername

【讨论】:

以上是关于PF4J 抛出“插件版本不能为空”的主要内容,如果未能解决你的问题,请参考以下文章

更改 spring 安全版本的抛出错误

ByteBuffer 在特定版本的 Android 上抛出 UnsupportedOperationException

在 pom.xml 中用变量替换版本时抛出错误

JDiagram 旧版本在 ExtendedArrayList.sort 中使用 JRE 8 抛出 ***Error

Fastlane增加内部版本号会抛出格式错误的64位a.b.c.d.e版本号

sbt 命令抛出空指针异常