Java 如何加上「;“嵌入式工件”;使用gradle bnd(bndtools)显示的部分?

Java 如何加上「;“嵌入式工件”;使用gradle bnd(bndtools)显示的部分?,java,maven,gradle,osgi,bndtools,Java,Maven,Gradle,Osgi,Bndtools,我正在将一系列OSGi捆绑包的构建从Maven构建转换为Gradle。构建的一部分包括使用Bnd将一些jar嵌入到生成的jar中,以及在清单文件中生成特定的头 现有的Maven构建使用“Maven捆绑插件”来实现这一点。该插件有一个嵌入依赖项功能,它可以获取所需的依赖项并将它们(作为jar)嵌入到生成的jar中。它还将头放在清单文件中:Bundle ClassPath和Embedded Artifacts。还有其他事实上的头文件,但我指定的两个头文件是在试图使Gradle输出与Maven的输出相

我正在将一系列OSGi捆绑包的构建从Maven构建转换为Gradle。构建的一部分包括使用Bnd将一些jar嵌入到生成的jar中,以及在清单文件中生成特定的头

现有的Maven构建使用“Maven捆绑插件”来实现这一点。该插件有一个嵌入依赖项功能,它可以获取所需的依赖项并将它们(作为jar)嵌入到生成的jar中。它还将头放在清单文件中:
Bundle ClassPath
Embedded Artifacts
。还有其他事实上的头文件,但我指定的两个头文件是在试图使Gradle输出与Maven的输出相匹配时引起问题的头文件

我已经能够通过简单的Bnd(bndtools)和Gradle实现其中的一部分

例如,此bnd指令:

-includeresource: docker-java-core-3.2.5.jar; lib:=true
将嵌入jar
docker-java-core-3.2.5.jar
,并将其添加到Bundle类路径清单头中。我还没有找到一种方法让Bnd包含可传递的deptencies,所以我手动指定这些deptencies,这很好

但是,我找不到一种方法(使用普通的Bnd)将JAR添加到由Maven构建生成的清单部分
嵌入式工件

此部分以以下格式显示在清单中:

Embedded-Artifacts: docker-java-core-3.2.5.jar;g="com.github.docker-java";a="docker-java-core";v="3.2.5"
我想通过Gradle使用Bnd(Bndtools)生成相同的代码


[编辑]注释表明此标题是不必要的,并且不是OSGi规范的一部分。如果是这样的话,为什么会包括在内?[/edit]

嵌入工件的
清单头是什么意思?它不是OSGi核心规范的一部分。所以,也许你不需要这个清单标题?据我所知,这个标题没有任何功能?谢谢你提供的信息。如果是这种情况,那么看起来头是多余的,不需要在文件中。你能想到插件生成它的原因吗?我是OSGi的新手,所以我目前正尝试以类似的方式复制构建,而不是用gradle从头开始构建,知道哪些组件会用到哪里。很高兴知道有些东西(可能)不需要精确地绘制。也许这只是纪录片?您需要询问maven bundle插件开发人员头部的用途是什么。
嵌入式工件
清单头部的作用或含义是什么?它不是OSGi核心规范的一部分。所以,也许你不需要这个清单标题?据我所知,这个标题没有任何功能?谢谢你提供的信息。如果是这种情况,那么看起来头是多余的,不需要在文件中。你能想到插件生成它的原因吗?我是OSGi的新手,所以我目前正尝试以类似的方式复制构建,而不是用gradle从头开始构建,知道哪些组件会用到哪里。很高兴知道有些东西(可能)不需要精确地绘制。也许这只是纪录片?您需要询问maven bundle插件开发人员头部的用途。