为什么依赖形式我的本地存储库不包含在Maven中?

时间:2017-08-26 11:26:26

标签: maven jenkins jar build dependencies

我有一个包含简单依赖项的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尝试构建它时,它会在中央存储库中查找它并且实际上找不到它。 (正如预期的那样,因为依赖性仅在我的本地存储库中可用)

如何确保构建时包含依赖项?

1 个答案:

答案 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目录中。

[注意] 如果您赶时间并且只有少量文件作为本地依赖项,请使用此解决方案