2014-09-24 25 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有关。