2017-03-16 195 views
0

我已經使用maven clean build從一些X maven項目生成jar(以及帶有依賴關係的jar)。以下jar被添加到我的本地maven回購。向pom.xml添加自定義jar(依賴項)依賴項

    組織效用
  • 0.0.1-SNAPSHOT
    • _remote.repositories
    • Maven的元數據的地方
    • 組織型多功能0.0.1-SNAPSHOT.jar
    • org-utility-0.0.1-SNAPSHOT.pom
    • org-utility-0.0.1 -snapshot-jar -with-dependencies.jar
  • Maven的元數據的地方

所以,我能夠檢索罐子 「檢索組織型多功能0.0.1-SNAPSHOT.jar」 到另一個Maven項目 'Y' 的依賴。下面是我在pom.xml中添加的代碼,它工作正常。

<dependency> 
     <groupId>com.org.utils</groupId> 
     <artifactId>org-utility</artifactId> 
     <version>0.0.1-SNAPSHOT</version> 
    </dependency> 

但在這裏,我的問題是,如何檢索這些罐子 「組織型多功能0.0.1-SNAPSHOT-JAR-與-dependencies.jar」 到同一個Maven項目 'Y' 作爲depenency。

我在pom.xml中使用了下面的代碼,並且在eclipse霓虹燈IDE中讀取了失蹤和無法讀取工件等錯誤。

<dependency> 
     <groupId>com.org.utils</groupId> 
     <artifactId>org-utility</artifactId> 
     <version>0.0.1-SNAPSHOT-jar-with-dependencies</version> 
    </dependency> 

此外,我看到新的文件夾得到創建下maven回購如下。

    組織效用
  • 0.0.1-SNAPSHOT-JAR-與依賴性
    • 組織型多功能0.0.1-SNAPSHOT-JAR-與-dependencies.pom.lastUpdated

文本文件中的組織,公用事業0.0.1-SNAPSHOT-JAR-與-dependencies.pom.lastUpdated是如下

注意:這是一個以太網內部實現文件,其格式可以在沒有提前通知的情況下更改爲 。 Thu Mar 16 19:58:17 IST 2017 @ default-internal-http:// localhost:3001/repository/internal/.lastUpdated = 1489674496370 https://repo.maven.apache.org/maven2/.lastUpdated= 1489674497497 http:// localhost:3001/repository/internal/.error =無法傳輸 工件 com.org.utils:org-utility:pom:0.0.1-SNAPSHOT-jar -with-dependencies from/to內部(HTTP://本地主機:3001 /庫/內部/): 連接被拒絕:連接 https://repo.maven.apache.org/maven2/.error=

請幫我從這個問題。 在此先感謝。

+1

打造爲什麼你想要這個罐子?參考「正常」的jar和所有其他依賴關係將被添加到您的新項目 – Jens

回答

0

如果你真的想引用這個罐子,你應該使用

<dependency> 
    <groupId>com.org.utils</groupId> 
    <artifactId>org-utility</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <classifier>jar-with-dependencies</classifier> 
</dependency> 

通常,你不想引用這個罐子,因爲如果你搭配它,它會搞砸了Maven的依賴機制與其他依賴關係。另一方面,如果您使用沒有依賴項的jar,Maven將爲您執行依賴項解析。

補充說明:要覆蓋非解決「LASTUPDATED」的文件,開始你的Maven與-u

+0

非常感謝! @JF Meier,添加分類器解決了我的問題,但是如果我想使用普通的jar本身,那麼是否可以請你解釋依賴解析的步驟(比如我們如何將所有其他依賴項添加到新項目中),因爲有很多的其他依賴項被用在X項目中,我想在Y項目中使用它,而不是在Y的POM中再次添加所有依賴項,以及在jar中生成的自定義類。 –

+0

如果X對A有依賴關係,並且聲明瞭對X的依賴關係,那麼您也會自動獲得A.這是Maven的傳遞依賴關係解析機制。您不需要複製依賴關係。順便說一句:如果你喜歡我的回答,請註冊並接受。 –