【发布时间】:2016-07-28 11:07:09
【问题描述】:
目前,开发人员处理多个 OSGi Bundle,它们也通过 OSGI 导入/导出相互使用。 Eclipse 用于开发和测试。
现在,我们将设置一个 CI 服务器 (Jenkins),它应该使用 Maven 构建所有 osgi 包(来自 repo)。因此,只有在 CI-server 中才需要 maven。这也意味着,开发人员在他们的工作站上开发时既不会看到也不关心 pom.xml,因为他们没有接触 maven。
我的第一个问题是,如果可能的话。当开发人员更改 Manifest 上的导入和导出时,maven 必须知道这一点才能使这些依赖项可用于编译器。例如,maven 想要构建 BundleB,它从 BundleA 导入包 a。通常,pom.xml 将包含对 Bundle A 的 maven 依赖项(之前必须部署到本地 maven 存储库)。但是,当开发人员仅更改其捆绑包中的 MANIFEST.MF 时,pom.xml 中没有条目。 maven 是否有可能通过解析 MANIFESTs 确定正确的 maven 依赖项?或者另一种解决方案:告诉 maven 一个包含所有预构建 jar 的类路径?
我的第二个问题是是否建议仅在 ci-server 而不是在开发人员中使用 maven。
问候
【问题讨论】:
-
另请参阅 this answer 到 Should I use POM first or MANIFEST first when developing OSGi application with Maven? 以比较 POM 先行与 MANIFEST 先行。
标签: maven jenkins continuous-integration osgi