簡體   English   中英

如何使用Maven中的Eclipse p2存儲庫?

[英]How can I use Eclipse p2 repositories from Maven?

我正在嘗試創建一個基於Eclipse的安裝程序,其中Eclipse項目是基於Maven的。 因此,無論是否使用Eclipse,它都應該與Maven一起使用。

我對各種Eclipse項目庫都有依賴關系,還有更多要添加的東西。 我想使用p2存儲庫,並且設法按照以下示例將Eclipse EMF庫轉換為jar: 在常規Maven構建中使用Eclipse p2存儲庫中的依賴項?

問題是,我找不到簡化流程的方法。 我需要手動將上述問題中重新打包的依賴項安裝到本地Maven存儲庫中,以便我可以在其他項目中引用它。 我想將偽造品從p2存儲庫無縫集成到基於Maven的設置中。 m4e看起來不像我想要的平滑解決方案:理想情況下,我想分發一組目錄,這些目錄將響應簡單的mvn全新安裝而完成所有工作:從p2存儲庫中提取庫,從Maven存儲庫中提取其他庫等等..

通過Maven和Tycho集成可以做到嗎?

更新:首先,要澄清一個問題:僅能夠引用P2存儲庫並不能解決需要從另一個項目使用此引用的情況。 從P2存儲庫引用的一個或多個庫必須重新打包為jar,以便其他Maven項目可以引用。 參考的問題進行包裝。 但是,它沒有說明如何從其他項目中使用此重新打包的輸出(程序集)。 在我的情況下,這實際上是從聚集的POM引用程序集,並為所有希望將庫與P2存儲庫源一起使用的項目繼承該POM的形式。

Tycho項目可以從p2存儲庫和Maven存儲庫中提取其依賴項(請參閱此相關答案 )。 即使您不是為OSGi運行時構建的,這也可能是您的解決方案:大多數OSGi捆綁軟件還可以在類路徑上充當“普通” JAR。

局限性:從Maven存儲庫引用的工件也必須是OSGi捆綁包,因此Tycho認為它們是為了解決依賴關系。 如果不是這種情況(並且您找不到OSGi捆綁包的替代產品),則可以將Tycho的依賴項解析與普通的Maven插件結合使用:

  • 使用Tycho的一種打包類型(例如eclipse-feature ),並以文件格式為打包類型(例如feature.xml )指定對p2工件的依賴關系feature.xml
  • 另外,在您的POM中配置簡單的Maven目標。 Tycho在運行時將OSGi / p2依賴項注入到Maven模型中,因此,例如,一個maven-compiler-plugin:compile調用將同時看到Maven依賴項和p2依賴項。

解決方案是使用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工件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM