2015-09-04 51 views
0

我的項目位於RCP中。該產品使用Maven創建。我的RCP項目取決於第三方罐子。目前我們將這些jar添加到plugin.xml「runtime」中。所以無論何時第三方jar文件發生變化,我們都必須更新plugin.xml文件。 現在我們通過使用maven將第三方jar轉換爲OSGI包然後創建p2站點並在構建時將第三方OSGI包添加到classpath中來更改此過程。 我們已經完成了對OSGI包的轉換並創建了p2站點。但是,當我們將其添加到存儲庫時,轉換後的第三方OSGI捆綁包並不總是可以下載。 我們已經在pom.xml中添加以下代碼,在轉換爲OSGi包,並創建P2:網站:未使用Maven從自定義p2站點下載已轉換的OSGI包

<build> 
       <plugins> 
        <plugin> 
         <groupId>org.reficio</groupId> 
         <artifactId>p2-maven-plugin</artifactId> 
         <version>1.2.0-SNAPSHOT</version> 
         <executions> 
          <execution> 
           <id>default-cli</id> 
           <configuration> 
            <artifacts> 
             <artifact><id>com.test.proj:proj-jar1:6.01.00-SNAPSHOT</id></artifact> 
             <artifact><id>com.test.proj:proj-jar2:6.01.00-SNAPSHOT</id></artifact> 
             <artifact><id>com.test.proj:proj-jar3:1.1</id></artifact> 
             <artifact><id>com.test.proj:proj-jar4:1.0</id></artifact> 
             <artifact><id>com.test.proj:proj-jar5:1.0</id></artifact> 
             <artifact><id>com.test.proj:proj-jar6:6.01.00-SNAPSHOT</id></artifact> 
            </artifacts> 
           </configuration> 
          </execution> 
         </executions> 
        </plugin> 

        <plugin> 
         <groupId>org.mortbay.jetty</groupId> 
         <artifactId>jetty-maven-plugin</artifactId> 
         <version>8.1.5.v20120716</version> 
         <configuration> 
          <scanIntervalSeconds>10</scanIntervalSeconds> 
          <webAppSourceDirectory>${basedir}/target/repository/</webAppSourceDirectory> 
          <webApp> 
           <contextPath>/site</contextPath> 
          </webApp> 
         </configuration> 
        </plugin> 
      <plugin> 
       <groupId>org.eclipse.tycho</groupId> 
       <artifactId>tycho-maven-plugin</artifactId> 
       <version>0.22.0</version> 
       <extensions>false</extensions> 
      </plugin> 
       </plugins> 
      </build> 
      <pluginRepositories> 
       <pluginRepository> 
        <id>reficio</id> 
        <url>http://repo.reficio.org/maven/</url> 
       </pluginRepository> 
      </pluginRepositories> 

下載,而構建我們增加了:

<repositories> 
     <repository> 
       <id>extJars</id> 
       <url>http://localhost:8080/site/</url> 
       <layout>p2</layout> 
     </repository> 
    </repositories> 

當我們稱之爲「MVN安裝「它不是每次都從」http://localhost:8080/site「下載罐子。 所以,請讓我知道我的pom.xml中出了什麼問題

任何幫助表示讚賞。謝謝

+0

Beerause Maven不這樣工作。你需要兩個步驟,你1)建立你的第三方的P2P更新站點的東西,並2)建立系統的其餘部分。在m2e中,他們正在使用他們稱之爲** wrapper bundles **的東西,它們是OSGI插件,用於存放罐子並導出它們。看看這個M2e GitHub回購。 – lschuetze

+0

因此,在另一個插件中使用'maven-bundle-plugin'來保存jar並導出它們。 – lschuetze

+0

感謝您的回覆。你能否詳細解釋我? –

回答

0

在Maven中,你不能建立一些東西,然後在一個反應​​堆中動態地依賴它。這種方式無法計算構建依賴關係。你要麼必須

  1. 建立你的P2更新站點
  2. 構建其餘

,或者你應該使用的東西的M2E人叫wrapper bundle。他們used it in this pom.xml