【发布时间】:2016-06-08 09:07:32
【问题描述】:
先有manifest吗 http://wiki.osgi.org/wiki/Tooling_Approaches OSGi 的 gradle 插件?或者用gradle怎么做?
OSGi 容器有一个很大的旧项目,其中许多项目在 MANIFEST.MF 中声明了复杂的关系。构建很长。
现在我们想简化事情并采用 Gradle。但首先不要破坏东西并保持 ant 和 gradle 并行构建一段时间。
但是我看到的是 gradle 建议在 build.gradle 中定义 MANIFEST。
https://docs.gradle.org/current/userguide/osgi_plugin.html
那会做很多复制工作。
更新有近 100 个模块,其中包含模块之间和嵌套 jar 的大量依赖关系信息。 MANIFEST.MF 的平均长度约为 50 行(从 20 到 300 行不等)。
如何捆绑嵌套 jar 是other question。
这个问题是关于使用现有的 MANIFEST.MF 文件。我看到的所有插件都使用bnd,这与manifest first 方法完全相反。
【问题讨论】:
-
如果您是手动编写清单,那么您可以将它们直接传递给 JAR 任务。我还缺少什么吗?
-
如何将现有的 MANIFEST.MF 文件传递给 jar 任务?我认为现在唯一的方法是将信息从 MANIFEST.MF 复制到
build.gradlejar 部分,这是一项巨大的猴子工作。在 gradle build 开始工作并被接受为主要交付方式之前,这些文件可能会发生变化。 -
JDK 不需要知道。
jar命令允许将预定义的清单作为文件提供。快速检查 Gradle 文档,看起来 Jar 任务有一个您可以使用的manifest属性。类似Manifest.from(filename)。 -
你卡在 Gradle 上了吗?为什么不使用 Maven。然后你可以使用标准的 maven 目标来创建 osgi 清单等。
-
因为 Gradle 更好:) !
标签: java gradle osgi manifest.mf