繁体   English   中英

Maven 无法从项目存储库中找到 jar

[英]Maven failing to find jar from Project Repository

我有一个需要包含在我的项目中的 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>

据我了解,这应该有效。 当我右键单击我的项目选择 run as 和 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/

我已经按照我可以看到的所有步骤来创建项目存储库,但它似乎仍然无法找到该文件。

有谁知道我缺少的步骤?

谢谢罗伯特

更新:我一定犯了多个错误。 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 服务器上编译。

您需要通过 Maven 将 jar 安装到您的本地存储库中。 除了将 jar 放入相应的文件夹之外,maven 还可以做其他事情。

请看这里

为了解决这个问题,我不得不:

  1. 更改目录结构。 我有“metcarob.com.lib”的组ID,并将其作为单个目录。 我不得不将其更改为 3 个目录。 梅特卡罗布/com/lib

  2. 我退出 eclipse,删除目录 ~/.m2 并重新启动 eclipse。 当我进行构建时,它构建得很好。

    Akber 的评论是关键,但我无法将评论标记为正确以表扬他。

谢谢大家的帮助

最有可能是以下两个问题之一:

  1. 组 id 的每个部分都需要是它自己的文件夹。
  2. 依赖项的 pom.xml 应该存在于 repo 中的同一文件夹中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM