2014-09-24 52 views
0

下面是令我困惑的內容簡介:Jenkins編譯正確版本的錯誤代碼

使用Maven在NetBeans 8.0中構建原始代碼。使用所有模塊成功構建。將當前源提交給gitlab並仔細檢查提交是否完成。

指向Jenkins與成功構建代碼相同的版本(在gitlab上)。

由於試圖導入一個不存在的包(意識到這會失敗),構建代碼的修訂從未實際調用(沒有意義),所以構建失敗。


從gitlab代碼:

import com.company.path.toPackage.currentToken.packageName; 
(other imports on same package path) 


在詹金斯(錯誤礦換行符,爲便於閱讀):

[ERROR] /var/lib/jenkins/jobs/Project Name - 
branch/workspace/module/src/main/java/com/ 
company/path/toPackage/oldToken/packageName/PackageMember:[3,57] 
package com.company.path.toPackage.oldToken.packageName does not exist 

(same error for every import on same package path) 


看起來它可能是一個POM問題,所以我拉起了POM(也來自詹金斯聲稱要查看的版本):

<parent> 
     <artifactId>project</artifactId> 
     <groupId>com.company.path.toPackage.currentToken</groupId> 
     <version>versionInfo</version> 
     <relativePath>../parent-project</relativePath> 
    </parent> 
    <dependencies> 

     <!-- project dependencies: platform --> 
     <dependency> 
      <groupId>${project.groupId}</groupId> 
      <artifactId>packageName</artifactId> 
      <version>${project.version}</version> 

...
主POM正確聲明組ID:

<groupId>com.company.path.toPackage.currentToken</groupId> 


我目前處於虧損狀態,爲什麼詹金斯是不是在編譯的版本是代碼指着實際包含。我已經確認Git Build Data下的版本號與gitlab上分支頭的版本號相匹配,並且這與我在IDE中使用Maven成功構建的版本號相同。有人能指出我正確的方向來解決這個問題嗎?

[編輯]在沒有怨言的同一個項目中具有類似依賴關係的其他模塊,我比較了pom文件和包結構。

預先感謝您。

+0

錯誤似乎在gitlab中,它在文件結構(無關文件夾)中有一個奇怪的地方,它在源碼樹或項目中加載到IDE時不會顯示 - 解決該問題。 – Sean 2014-09-24 21:57:00

+0

通過瀏覽gitlab知識庫(通過瀏覽代碼)發現問題,然後檢查出來,手動刪除流浪文件夾,並在項目中檢查清除它。出於某種原因,我不知道它實際上並沒有在SourceTree中顯示這些文件夾。 – Sean 2014-09-24 22:09:41

回答

0

正如上面評論中提到的,解決方案涉及通過gitlab(在瀏覽器中)並發現在期望版本下存儲在版本庫中的文件/文件夾,這些文件/文件夾沒有通過SourceTree拉出(因此永遠不會在本地構建中顯示) 。
從那裏,檢出存儲庫並刪除有問題的文件/文件夾,然後檢查修改後的存儲庫,清除了導入衝突。這很容易就是我沒有正確配置SourceTree來完成我所期望的功能。它也可能與SourceTree的Jira上報告的一些同步相關的bug有關。