2017-08-26 91 views
0

我有包括简单的依赖一个pom.xml项目:为什么我的本地资源库的依赖项不包含在Maven中?

<dependency> 
    <groupId>com.somegroupid</groupId> 
    <artifactId>LocalProject</artifactId> 
    <version>1.0-SNAPSHOT</version> 
</dependency> 

当我在本地运行项目,一切完美的作品。但是,当我推项目的GitHub和詹金斯尝试自动建立它,我得到这个错误:

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

我的猜测是,该项目罐子没有得到包括在构建和詹金斯试图在打造它,它在中央存储库中查找它并且实际上找不到它。 (如预期的那样,因为依赖关系仅在我的本地存储库中可用)

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

回答

1

when jenkins tries to build it looks for it in the central repository and effectively doesn't find it. (As is expected because the dependency is only available in my local repository)

你是对的

据我知道你有两种方法来解决这个问题。

1 - 专业的解决方案(更好) 创建artifactory的(我用这个)或Nexus一个内部Maven仓库,并在此回购部署罐子,模块和相关性。配置您的存储库服务器以从互联网下载依赖关系。在Jenkins上配置maven以使用本地maven存储库服务器而不是https://repo.maven.apache.org/maven2/或其他类似的。

这是一个很好的解决方案,如果你与一个伟大的开发团队合作,你可以控制人们使用什么版本。

2 - 解决方法

只要把你的com.somegroupid:LocalProject:jar文件在詹金斯服务器的目录.m2目录/仓库里。

[公告],如果你是在赶时间,很少有文件作为本地依赖性

+0

第一种解决方案需要我的远程服务器来访问我的本地计算机上的本地Maven仓库只需使用此解决方案?詹金斯正在建造时,如果我的电脑关机,该怎么办?那么防火墙等呢?还是我看着这个错误的方式? – Titulum

+0

第二种解决方案可能会奏效,我接受了你的答案,但现在不能应用它,因为我通过在我的项目中将所需的课程包含在单独的包中来解决它。 – Titulum

相关问题