我有一个jar文件,我需要包括在我的项目。我使用Eclipse与Maven
我在我的计算机上的项目中创建了以下文件夹:
/home/robert/eclipse/BobProjects/BobDiary/in_project_maven_repository/metcarob.com.lib/nachocalendar/0.23
字符串
我在那里放了一个文件,叫做:
nachocalendar-0.23.jar
型
然后我将依赖性添加到我的POM文件中:
<dependency>
<groupId>metcarob.com.lib</groupId>
<artifactId>nachocalendar</artifactId>
<version>0.23</version>
<scope>compile</scope>
</dependency>
型
我还将Repo添加到我的pom文件中:
<repository>
<id>in-project</id>
<name>In Project Repo</name>
<url>file:///home/robert/eclipse/BobProjects/BobDiary/in_project_maven_repository</url>
</repository>
型
从我的理解这应该工作.当我右键单击我的项目选择运行和maven安装我得到以下错误:
[ERROR] Failed to execute goal on project BobDiary: Could not resolve dependencies for project metcarob.com.BobDiary:BobDiary:jar:0.0.1-SNAPSHOT: Failure to find metcarob.com.lib:nachocalendar:jar:0.23 in file:///home/robert/eclipse/BobProjects/BobDiary/in_project_maven_repository was cached in the local repository, resolution will not be reattempted until the update interval of in-project has elapsed or updates are forced -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal on project BobDiary: Could not resolve dependencies for project metcarob.com.BobDiary:BobDiary:jar:0.0.1-SNAPSHOT: Failure to find metcarob.com.lib:nachocalendar:jar:0.23 in file:///home/robert/eclipse/BobProjects/BobDiary/
型
我已经遵循了所有的步骤,我可以看到创建一个在项目存储库,但它似乎仍然无法找到文件。
有人知道我错过了什么吗?
谢谢罗伯特
更新:Akber发现了我的第一个错误:我已经改变了文件夹,所以组ID在不同的文件夹中:(metcarob.com.lib现在是metcarob. com.lib)jar文件现在在:/home/robert/eclipse/BobProjects/BobDiary/in_project_maven_repository/metcarob/com/lib/nachocalendar/0.23
我已经验证了这一点,因为在我的机器中存在以下目录:~/.m2/repository/metcarob/com/lib/nachocalendar/0.23
我已经移动了文件,重新启动了eclipse并重新运行了maven clean和maven install。
现在的错误是:
[ERROR] Failed to execute goal on project BobDiary: Could not resolve dependencies for project metcarob.com.BobDiary:BobDiary:jar:0.0.1-SNAPSHOT: Failure to find metcarob.com.lib:nachocalendar:jar:0.23 in file:///home/robert/eclipse/BobProjects/BobDiary/in_project_maven_repository was cached in the local repository, resolution will not be reattempted until the update interval of in-project has elapsed or updates are forced -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal on project BobDiary: Could not resolve dependencies for project metcarob.com.BobDiary:BobDiary:jar:0.0.1-SNAPSHOT: Failure to find metcarob.com.lib:nachocalendar:jar:0.23 in file:///home/robert/eclipse/BobProjects/BobDiary/in_project_maven_repository was cached in the local repository, resolution will not be reattempted until the update interval of in-project has elapsed or updates are forced
型
但是我也把这个项目放到gitlab中,并使用CI在那里编译它,命令是mvn install -B我的项目现在找到了依赖项,并在gitlab CI服务器上编译。
4条答案
按热度按时间syqv5f0l1#
最有可能的是,两个问题之一:
1.组ID的每个部分都需要是自己的文件夹。
1.依赖项的pom.xml应该存在于存储库中的同一个文件夹中。
ffscu2ro2#
你需要通过maven把jar文件安装到你的本地仓库中。maven除了把jar文件放在相应的文件夹中之外,还做其他的事情。
请参见here
ddarikpa3#
为了解决这个问题,我不得不:
1.更改目录结构。我的组ID为“metcarob.com.lib”,并将其作为单个目录。我必须将其更改为3个目录。metcarob/com/lib
1.我退出了eclipse,删除了~/.m2目录,然后重新启动了eclipse。当我构建的时候,它构建的很好。
Akber的评论是关键,但我不能把一个评论标记为正确的,以给予他的信任。
谢谢大家的帮助
jogvjijk4#
如果您将另一个localRepository的片段复制到您的localRepository,
您需要从_remote.repositories中的存储库键中删除旧的repo标记,或者完全删除该文件。
使用EnhancedLocalRepositoryManager的Maven DefaultArtifactResolver将仅解析来自_remote.repositories的工件,这些工件来自您当前settings.xml中的存储库列表之一