2017-08-26 94 views
0

我有包括簡單的依賴一個pom.xml項目:爲什麼我的本地資源庫的依賴項不包含在Maven中?

<dependency> 
    <groupId>com.somegroupid</groupId> 
    <artifactId>LocalProject</artifactId> 
    <version>1.0-SNAPSHOT</version> 
</dependency> 

當我在本地運行項目,一切完美的作品。但是,當我推項目的GitHub和詹金斯嘗試自動建立它,我得到這個錯誤:

[WARNING] The POM for com.somegroupid:LocalProject:jar:1.0-SNAPSHOT is missing, no dependency information available 
[INFO] ------------------------------------------------------------------------ 
[INFO] BUILD FAILURE 
[INFO] ------------------------------------------------------------------------ 
[INFO] Total time: 1.563 s 
[INFO] Finished at: 2017-08-26T13:19:47+02:00 
[INFO] Final Memory: 9M/31M 
[INFO] ------------------------------------------------------------------------ 
[ERROR] Failed to execute goal on project MainProject: Could not resolve dependencies for project com.somegroupid:MainProject:war:1.0-SNAPSHOT: Could not find artifact com.somegroupid:LocalProject:jar:1.0-SNAPSHOT -> [Help 1] 

我的猜測是,該項目罐子沒有得到包括在構建和詹金斯試圖在打造它,它在中央存儲庫中查找它並且實際上找不到它。 (如預期的那樣,因爲依賴關係僅在我的本地存儲庫中可用)

如何在構建時確保依賴項包含在內?

回答

1

when jenkins tries to build it looks for it in the central repository and effectively doesn't find it. (As is expected because the dependency is only available in my local repository)

你是對的

據我知道你有兩種方法來解決這個問題。

1 - 專業的解決方案(更好) 創建artifactory的(我用這個)或Nexus一個內部Maven倉庫,並在此回購部署罐子,模塊和相關性。配置您的存儲庫服務器以從互聯網下載依賴關係。在Jenkins上配置maven以使用本地maven存儲庫服務器而不是https://repo.maven.apache.org/maven2/或其他類似的。

這是一個很好的解決方案,如果你與一個偉大的開發團隊合作,你可以控制人們使用什麼版本。

2 - 解決方法

只要把你的com.somegroupid:LocalProject:jar文件在詹金斯服務器的目錄.m2目錄/倉庫裏。

[公告],如果你是在趕時間,很少有文件作爲本地依賴性

+0

第一種解決方案需要我的遠程服務器來訪問我的本地計算機上的本地Maven倉庫只需使用此解決方案?詹金斯正在建造時,如果我的電腦關機,該怎麼辦?那麼防火牆等呢?還是我看着這個錯誤的方式? – Titulum

+0

第二種解決方案可能會奏效,我接受了你的答案,但現在不能應用它,因爲我通過在我的項目中將所需的課程包含在單獨的包中來解決它。 – Titulum

相關問題