我有一个包含简单依赖项的pom.xml项目:
<dependency>
<groupId>com.somegroupid</groupId>
<artifactId>LocalProject</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
当我在本地运行项目时,一切都很完美。但是当我将项目推送到github并且Jenkins尝试自动构建它时,我收到了这个错误:
[WARNING] The POM for com.somegroupid:LocalProject:jar:1.0-SNAPSHOT is missing, no dependency information available
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.563 s
[INFO] Finished at: 2017-08-26T13:19:47+02:00
[INFO] Final Memory: 9M/31M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal on project MainProject: Could not resolve dependencies for project com.somegroupid:MainProject:war:1.0-SNAPSHOT: Could not find artifact com.somegroupid:LocalProject:jar:1.0-SNAPSHOT -> [Help 1]
我的猜测是项目jar没有包含在构建中,当jenkins尝试构建它时,它会在中央存储库中查找它并且实际上找不到它。 (正如预期的那样,因为依赖性仅在我的本地存储库中可用)
如何确保构建时包含依赖项?
答案 0 :(得分:1)
当jenkins尝试构建时,它会在中央存储库中查找它并且实际上找不到它。 (正如预期的那样,因为依赖性仅在我的本地存储库中可用)
你是对的
据我所知,你有两种解决方法。
1 - 专业解决方案(更好) 创建一个带有artifactory(我使用它)或nexus的内部maven存储库,并在此repo中部署jar,模块和依赖项。配置存储库服务器以从Internet下载依赖项。在Jenkins上配置maven以使用本地maven存储库服务器而不是https://repo.maven.apache.org/maven2/或其他类似。
如果您与优秀的开发团队合作,这是一个很好的解决方案,您可以控制人们使用的内容和版本。
2 - 解决方法
只需将com.somegroupid:LocalProject:jar文件放在jenkins服务器的.m2 / repository目录中。
[注意] 如果您赶时间并且只有少量文件作为本地依赖项,请使用此解决方案