[英]No such file: ‘pom.xml’ error in jenkins
我在
Bitbucket<\/code>有一個存儲庫。
在那個存儲庫中,我有一個名為
Demo<\/code>的項目,這是一個
maven<\/code>項目。
我正在嘗試使用
Jenkins<\/code>部署
Demo<\/code> 。
我正在遵循的步驟<\/strong>。
配置(這是單個作業的配置)。
項目<\/strong>名稱:演示。
簡介<\/strong>:bla bla bla ..
源代碼管理<\/strong>-> Git<\/strong> ->存儲庫 URL<\/strong> :git@bitbucket.org:UserName\/ProjectName.git。
->憑證<\/strong>:提供我的憑證。
構建<\/strong>-> 根 POM:
pom.xml<\/code> 。
一切看起來都很好,但是 pom.xml 拋出錯誤說:
由於這是它正在尋找 pom.xml 的 maven 項目,因此在提供路徑時我很困惑。 因為 Jenkins 正在匯集來自 Bitbucket 的源代碼,它在 Demo 項目下有 pom.xml。
但我不知道在這里提供哪條路徑。
您必須提及與 jenkins 工作空間相關的應用程序 pom.xml 的路徑。
一旦 Jenkins 構建開始,它會將源代碼下載到 .jenkins\\jobs\\yourjobname\\workspace 並在那里構建它,如果您不確定 pom 路徑,您可以檢查此位置。
例如對於應用程序 Test .jenkins\\jobs\\jenkinsJobName\\workspace\\Test\\pom.xml
The root pom field should be Test\pom.xml
如果您的工作區中有 pom.xml,則在 ROOT POM 中使用以下命令。
$workspace\pom.xml
使用 $workspace\\"pom.xml 所在的目錄名"\\pom.xml
我很時髦地遲到了這個問題,這並不是一個真正的答案。 我正在記錄我遇到的情況,這可能有助於其他人解決 Jenkins 的“沒有這樣的文件”問題。
我的環境是 Windows 上的 SVN、Maven (3.8.4) 和 Jenkins (2.330)。
我需要從 SVN 中查看 3 個代碼庫,比如 o-base、p-base 和 p-core。
有一個Maven繼承,p-core --> p-base --> o-base(頂層pom),pom中的相對路徑相應指向。
我按照 o-base、p-base 和 p-core 的順序檢查了 SVN 的代碼。 (o-base check out 是非常必要的,因為在本地 Nexus 中可以使用單個 pom 的工件)。
所有源代碼都在以下目錄結構中檢出: $workspace/o-svn-base/o-base $workspace/o-svn-base/p-base $workspace/o-svn-base/p-core
目標是封裝 p-core。
在 Jenkins Invoke top-level-maven Targets 中,我將 pom 文件路徑指定為 ./o-svn-base/p-core/pom.xml (相對於工作區),找不到該文件。
有效的是 ../p-core/pom.xml
很明顯,Jankins 將第一個簽出目錄作為代碼目錄,並計算了相對於該目錄的 pom 文件路徑。 這種行為在任何地方都沒有完全記錄(或者我可能找不到); 但是,這是非常不確定的。
上面建議的答案是 $workspace; $workspace/o-svn-base/p-core/pom.xml (是的,正斜杠在 Windows 上有效)有效。
在我看來,這是接近相對路徑分辨率的正確方法,因為它是絕對確定的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.