apache-flex Maven包插件构建错误

qyswt5oh  于 2022-11-01  发布在  Apache
关注(0)|答案(1)|浏览(128)

当我运行mvn clean install时,maven抛出以下异常:
正在导出不在Bundle-Classpath[Jar:dot]上的软件包
我几天前就可以成功建造了,为什么会发生这种情况?

nx7onnlm

nx7onnlm1#

如果没有POM配置的详细信息,很难确定,但看起来你使用的是基于bnd的插件,这可能意味着maven-bundle-pluginbnd-maven-plugin
在这两种情况下,生成的bundle都是在导出一个不在bundle中的包,这肯定会破坏你的应用程序,所以bnd无法创建bundle。
我猜(因为我没有太多信息可供参考)发生了以下情况之一:

  • 有人重命名了您的软件包中的软件包,但没有更新pom文件中的导出
  • 有人已经从您的pom中删除了一个依赖项,该依赖项以前作为静态链接的依赖项被拉入到您的bundle中
  • 有人重构了您正在使用的SNAPSHOT,但它不再包含您要导出的包
  • 有人已经将jar文件嵌入到您的包中,但没有将其添加到包类路径中。
  • 也有可能(但不太可能)有人将您的类配置为不进入bundle归档的根目录,因此类与.不相关。

修复前三个问题很容易,要么修复包名,要么重新添加正确的依赖关系,要么删除导出。最后两个问题也很容易修复。你可以像这样修改包类路径:

Bundle-ClassPath: /path/to/my.jar, /path/to/another.jar, /path/to/folder

另一个可能更好的选择是不将代码包含在嵌套的JAR文件中,而是直接将代码嵌入到包中。这意味着调整插件配置以使用嵌入语法。由于我不知道您使用的是什么插件,我不能给予您一个例子,但bnd的include资源的文档是here

相关问题