2013-06-26 37 views

回答

0

我們正在使用的Jenkins是德語,所以我試圖猜測選項是如何翻譯的。

轉到您的項目配置,然後進入增強的項目配置(這是第二部分)並展開它。最後一點應該是Change folder of workspace。我想這可能是你正在尋找的。

否則,你可以隨時去到Build選擇和路徑更改爲你的pom.xml

+0

A.「更改工作區文件夾」更改項目下載到的文件夾,而不是執行Maven構建的進程的工作目錄。 B.無論構建了哪個pom.xml,工作目錄都是工作空間的頂層目錄。 –

+0

嗯,好的。對不起,我忍不住。 –

1

轉到你的Maven項目的配置,則:

構建>點擊「高級」按鈕>勾選「使用自定義的工作空間」>設置目錄

(我使用詹金斯版本1.508)

+1

您是否指'高級項目選項>使用自定義工作區?如果是這樣,根據文檔,「這是代碼簽出和構建發生的目錄」,這不會解決我的工作目錄設置爲項目子目錄的情況下執行構建的情況。 –

11

創建目標檢出父。

  • Checkout的構建目標
  • 設置編譯的父目錄 - >目標=乾淨
  • 運行構建和確定目標工作目錄(控制檯輸出的第二行,在我的樣本的/ var/lib中/詹金斯/工作區/ MY_PROJECT)

創建目標,以建立自己的路徑

  • 不要勾選「刪除工作區BEF礦建設開始」
  • 在Build - >高級 - 檢查 「工作空間的變更文件夾」 並粘貼/ yourtargetdirectory

它爲我工作。

+4

我沒有在任何地方看到「更改工作區文件夾」選項(Jenkins ver。1.605)。 –

+0

這是手冊嗎? – rogerdpack

+0

@rogerdpack,不知道我是否理解你的問題,但不是,它不是手動拷貝(當然,你可以複製路徑,但不是文件),它只是對整個項目工作區內的文件夾的引用 – ton

2

您可以使用Maven's -f option

-f,--file <arg> Force the use of an alternate POM file (or directory with pom.xml). 

例如,如果你的項目有一個結構:

README.md 
sources 
|----pom.xml 
|----services 
| |----pom.xml 
| +----src 
|----webservices 
| |----pom.xml 
| +----src 
+----.... 
useful 
docs 

那麼你可以使用GoalsInvoke top-level Maven targets

-f sources/pom.xml clean install 
+2

這不會更改工作目錄;作爲Maven構建的一部分運行的腳本假設當前工作目錄是其中包含'pom.xml'的目錄。 –

+0

這根本不回答問題。它回答* a *的問題,但不是所要求的... – Jasper

+0

這對我有效。 –

3

對於一個參考,這是對我有用的東西。在「調用頂級Maven目標」構建步驟中,有一個「高級...」按鈕。如果你點擊這個按鈕,你可以指定你的POM.xml文件的相對路徑。這應該確保您只在子目錄中構建所需的項目。

+0

也許你是指在這裏構建預先步驟?這就是我找到選項的地方(無論如何,請參閱Foon的答案,瞭解如何在非步驟FWIW中執行此操作...) – rogerdpack

9

不知道何時添加了這個,但是對於我前面的Jenkins(Jenkins版本1.627,頁面底部),現在有一個選項可以定義根pom.xml的位置(幫助消息說:

如果您的工作空間在什麼地方頂層的pom.xml比 第一個模塊的根目錄等,指定路徑(相對於 模塊根)在這裏,如父/ pom.xml的。如果留空,默認爲 pom.xml

)。我面臨着同樣的問題,但後來意識到答案是盯着我的臉(請注意,我沒有打先進的Hua2308建議,可能是因爲他們改變了UI)

+0

在我的情況中,我嘗試了這種方法,但似乎無法正常工作,但事實證明,我有一個習慣「構建後」步驟是從根開始構建的,而最初的構建工作正常。所以請注意self:addd「-f XXX」以手動構建步驟,如果您使用此選項:) – rogerdpack

+0

OP問及CWD。這個答案並不能解決運行** mvn -f submodule/pom.xml **和** cd submodule && mvn **時產生不同結果的編寫不佳的項目層次結構的問題(例如:只有一種方法可以工作,因爲相對路徑POMS)。 Jenkins Maven和Freestyle作業似乎沒有提供像Pipeline作業那樣更改工作目錄的方法,所以Pipeline實際上是唯一的解決方案。請注意,Maven和Freestyle作業不同地執行** mvn -f submodule/pom.xml ** - 特別是在不同的目錄中。 – Akom

0

解決方案:

cd subfolder; mvn -f ../pom.xml task 

Maven沒有提供相反的選擇,這意味着這種用例的明智方式,可能是因爲Maven恨你。

相關問題