当我运行mvn clean install时,maven抛出以下异常:正在导出不在Bundle-Classpath[Jar:dot]上的软件包我几天前就可以成功建造了,为什么会发生这种情况?
mvn clean install
nx7onnlm1#
如果没有POM配置的详细信息,很难确定,但看起来你使用的是基于bnd的插件,这可能意味着maven-bundle-plugin或bnd-maven-plugin。在这两种情况下,生成的bundle都是在导出一个不在bundle中的包,这肯定会破坏你的应用程序,所以bnd无法创建bundle。我猜(因为我没有太多信息可供参考)发生了以下情况之一:
maven-bundle-plugin
bnd-maven-plugin
.
修复前三个问题很容易,要么修复包名,要么重新添加正确的依赖关系,要么删除导出。最后两个问题也很容易修复。你可以像这样修改包类路径:
Bundle-ClassPath: /path/to/my.jar, /path/to/another.jar, /path/to/folder
另一个可能更好的选择是不将代码包含在嵌套的JAR文件中,而是直接将代码嵌入到包中。这意味着调整插件配置以使用嵌入语法。由于我不知道您使用的是什么插件,我不能给予您一个例子,但bnd的include资源的文档是here
1条答案
按热度按时间nx7onnlm1#
如果没有POM配置的详细信息,很难确定,但看起来你使用的是基于bnd的插件,这可能意味着
maven-bundle-plugin
或bnd-maven-plugin
。在这两种情况下,生成的bundle都是在导出一个不在bundle中的包,这肯定会破坏你的应用程序,所以bnd无法创建bundle。
我猜(因为我没有太多信息可供参考)发生了以下情况之一:
.
不相关。修复前三个问题很容易,要么修复包名,要么重新添加正确的依赖关系,要么删除导出。最后两个问题也很容易修复。你可以像这样修改包类路径:
另一个可能更好的选择是不将代码包含在嵌套的JAR文件中,而是直接将代码嵌入到包中。这意味着调整插件配置以使用嵌入语法。由于我不知道您使用的是什么插件,我不能给予您一个例子,但bnd的include资源的文档是here