【问题标题】:Using a maven library that's not in a repository使用不在存储库中的 Maven 库
【发布时间】:2016-05-04 14:16:16
【问题描述】:

我有一个使用 maven 构建的库 (JBPT),但它不在任何存储库中。

我已经下载了库的源代码,将其解压缩并按照库作者的指示在其根文件夹中运行“mvn install clean”。我可以看到该库现在已构建并安装在我的 ~/.m2 目录下。

现在我想将该库作为依赖项添加到我的项目中。在他们的 pom.xml 中 JBPT 的工件被声明为:

<groupId>org.jbpt</groupId>
<artifactId>jbpt</artifactId>
<version>0.2.393</version>

现在,在我的项目中,我将它作为依赖项添加到我的 pom.xml 中,如下所示:

<dependency>
  <groupId>org.jbpt</groupId>
  <artifactId>jbpt</artifactId>
  <version>0.2.393</version>
</dependency>

尽管库在我的 ~/.m2 本地存储库中,但在编译我的项目时它无法获取依赖项,它失败并出现以下错误:

[ERROR] Failed to execute goal on project modelvsdocument: Could not
resolve dependencies for project <MY PROJECT>: Failure to find 
org.jbpt:jbpt:jar:0.2.393 in <SOME REPOSITORY I'M USING> was cached in 
the local repository, resolution will not be reattempted until the 
update interval of <THE NAME OF THE REPOSITORY> has elapsed or updates 
are forced -> [Help 1]

我不明白为什么它试图从它不是来自的外部存储库获取存储库信息。

为什么会失败,我该如何解决?

【问题讨论】:

  • 当你使用 offline 选项(mvn -o clean install)时会发生什么?
  • @Linuslabo 显然没有任何变化
  • 可能在那个 pom 中有一个 标签,指向外部存储库。
  • 不,我已经检查过了,但事实并非如此。不过,该库似乎包含许多子库(在主 pom.xml 上声明为模块)。我不知道这在这种情况下是否相关。
  • 你试过用mvn clean install -U构建吗?

标签: java maven dependencies


【解决方案1】:

我认为 JBPT 的问题在于您需要依赖相关的子模块,例如jbpt-core 在您的 pom 文件中,而不是在包装 uber pom.xml 中。

【讨论】:

    猜你喜欢
    • 2013-10-11
    • 2020-11-24
    • 2012-03-20
    • 2012-08-17
    • 2016-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多