以下是让我感到困惑的简要说明:
使用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文件和包结构。
提前谢谢。
答案 0 :(得分:0)
正如上面的评论所述,解决方案涉及通过gitlab(在浏览器中)并发现存储库中的文件/文件夹,这些文件/文件夹位于未通过SourceTree提取的预期版本上(因此从未显示在本地构建中)。
从那里,检查存储库并删除有问题的文件/文件夹并检查修改后的存储库清除了导入冲突。它可能很容易就是我没有正确配置SourceTree以执行我期望的操作。它也可能与SourceTree的Jira上报告的一些与同步相关的错误有关。