2011-06-22 133 views
3

對於我的一個Jenkins構建,我有一個相當複雜的構建工作流程。該項目包含兩個模塊。模塊M1構建服務,模塊M2構建服務客戶端。 M1依賴於M2(不要問我爲什麼)。 M2需要從M1中的ejb創建存根。所以我們處於循環依賴狀態,我試圖繞過以下的構建順序。在沒有再次運行構建的情況下安裝構建工件

  1. MVN全新安裝(整個項目)
  2. MVN包-PCI(M2爲使用配置文件來收集所有的依賴含M1 JAR)
  3. 副本建立存根創造文物和依賴於不同的機器
  4. 創建存根
  5. 覆蓋M2打造神器與包含存根版本
  6. MVN安裝:安裝(爲M2)

與運行的最後安裝,它炸彈時:

[INFO] [安裝:安裝{執行:默認-CLI}]
[INFO] ------------- -------------------------------------------------- ---------
[錯誤]編譯錯誤
[INFO] ----------------------------- -------------------------------------------
[INFO] The packaging對於這個項目沒有分配文件到構建神器
[INFO] --------------------------------- ---------------------------------------

所以我提出了這個想法,既然我已經使用Jenkins,並且我正在部署到我們的快照目錄,我沒有什麼可擔心的,我可以省略本地部署,因爲它會從快照中提取新版本無論如何回購。結果是,詹金斯在完成安裝之後將工件存檔。由於我沒有運行最終安裝,沒有存根的版本被部署(從我認爲的第2步開始)。

然後,我配置了Jenkins作業,除了maven集成的自動存檔功能之外,還使用post build選項顯式存檔了我的服務客戶端jar。結果是,我將服務客戶端jar存檔爲Jenkins的工作。一個是項目級別(所需版本帶有存根)和一個在M2(沒有存根)。當然,沒有存根的版本已經部署了。

任何想法如何在不改變項目結構的情況下襬脫這種困境。只要開發者的願望仍然實現,我就可以將東西添加到pom文件中。詹金斯的工作是我的領域。

回答

0

這聽起來像你需要重新組織。是否有可能將客戶端中的服務器 - >客戶端依賴關係排除到單獨的jar中,並將客戶端上的依賴關係更改爲對這個新jar的依賴關係?

+0

重組,並沒有多大幫助。問題是我不想告訴maven如何創建存根,所以Jenkins需要做存根創建。看起來,詹金斯在創建存根之前存檔存根。第一步是構建的主要步驟。 –

相關問題