如何使用Maven的从Eclipse的P2库?(How can I use Eclipse p2 r

2019-07-31 08:02发布

我想创造一个Eclipse项目是基于Maven的基于Eclipse的设置。 因此,它应该与Maven所有的工作是否被使用的Eclipse。

我曾在不同的Eclipse项目库从属物,更以复加。 我想用P2存储库,我已经成功地拉一个Eclipse EMF库,并把它变成下面这个例子罐子: 从Eclipse的P2库使用依赖于定期Maven构建?

问题是,我无法找到简化流程的一种方式。 我需要手动从上面给本地仓库的问题,安装重新打包的依赖,使我可以引用其他项目。 我想从P2文物库无缝集成到基于我Maven的设置。 M4E看起来并不像顺利解决我在寻找:理想情况下,我想发布一组目录,其将尽一切以响应简单MVN干净安装:拉从P2回购库,从Maven仓库拉其他图书馆等等..

这是通过Maven和第谷的整合是可行的?

更新:第一,澄清的问题:刚能够以P2为基准库不与在此引用需要从其他项目中使用的情况下帮助。 库(或库)从P2存储库引用必须被重新打包为一个罐子,以便它可以通过其他Maven项目引用。 引用的问题做包装。 但是,它没有解释如何重新打包输出(组装)可以从其他项目中使用。 在我而言,这竟然是来自聚集POM,秉承形式引用组件POM对于想利用图书馆与P2存储库出身的所有项目。

Answer 1:

第谷项目可以拉动他们的依赖来自P2存储库和Maven仓库(见本相关的答案 )。 这可能是你最好的选择,即使你不建设一个OSGi运行时:大多数OSGi包也作为在classpath“普通”的JAR文件。

限制:从Maven仓库中引用的文物也必须是OSGi包,让第谷认为,他们依赖解析。 如果不是这种情况(和你无法找到替代它们是OSGi包),你可以第谷的依赖分辨率与普通的Maven插件相结合:

  • 使用第谷的包装类型中的一种(如eclipse-feature ),并在包装类型的文件格式指定依赖于P2工件(如feature.xml
  • 另外配置您的POM平原Maven目标。 第谷注入了OSGi / P2的依赖到在运行Maven的模型,所以例如maven-compiler-plugin:compile调用将同时看到Maven依赖和P2的依赖。


Answer 2:

该解决方案是创建一个多模块的设置与Maven,并宣布对EMF库重新包装的输出依赖(从我所引用的问题),所有项目的父POM具有这样的:

    <dependencies>
    <dependency>
        <groupId>com.mymodule</groupId>
        <artifactId>myartifact</artifactId>
        <version>0.0.1</version>
        <classifier>repackaged</classifier>                 
    </dependency>
  </dependencies>
      <modules>
            <module>../mymodule</module>
     </modules>

该功能可让家长访问重新包装P2文物,具有该模块的所有模块。



文章来源: How can I use Eclipse p2 repositories from Maven?