Jenkins为正确的版本编译错误的代码

时间:2014-09-24 21:16:04

标签: maven jenkins gitlab

以下是让我感到困惑的简要说明:

使用Maven在NetBeans 8.0中构建原始代码。使用所有模块成功构建。将当前源提交给gitlab并仔细检查提交是否完成。

将Jenkins指向与成功构建代码相同的修订版(在gitlab上)。

构建失败,因为尝试导入一个不存在的包(这意味着它会失败),构建的代码修订版实际上从未要求(没有意义)。


来自gitlab中的代码:

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


关于Jenkins(错误的换行,为了便于阅读):

[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(也来自Jenkins声称要看的修订版):

<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>

...
master pom正确声明了groupID:

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


我目前不知道为什么Jenkins没有编译它所指向的修订实际包含的代码。我已经确认Git Build Data下的修订号与gitlab上分支头的修订号相匹配,这与我在IDE中使用Maven成功构建的版本号相同。有人能指出我正确的方向进行故障排除吗?

[编辑]在同一个项目中具有相似依赖关系的其他模块没有抱怨,我正在比较pom文件和包结构。

提前谢谢。

1 个答案:

答案 0 :(得分:0)

正如上面的评论所述,解决方案涉及通过gitlab(在浏览器中)并发现存储库中的文件/文件夹,这些文件/文件夹位于未通过SourceTree提取的预期版本上(因此从未显示在本地构建中)。
从那里,检查存储库并删除有问题的文件/文件夹并检查修改后的存储库清除了导入冲突。它可能很容易就是我没有正确配置SourceTree以执行我期望的操作。它也可能与SourceTree的Jira上报告的一些与同步相关的错误有关。