当前位置: 首页 > 知识库问答 >
问题:

ApacheMaven:如果repo中没有pom,如何从非标准存储库中指定jar依赖关系?

傅志用
2023-03-14

我是新手到Maven,我的问题描述如下:

我有一个jar文件在以下回购:http://www.repo.com/custom/path/Jarfile-0.1.0.jar

我已将存储库添加到pom文件中,如下所示

<repository>
<url>http://www.repo.com/custom/path </url>
<id>Custom_repo</id>
</repository>

我在pom文件中设置了依赖项,如下所示:

<dependancy>
<groupId>XXX<groupId>
<artifactId>Jarfile</artifactId>
<version>0.1.0</version>
</depandancy>

当我进行“mvn编译”时,输出是:

Downloading: http:/www.repo.com/custom/path/XXX/Jarfile/0.1.0/Jarfile-0.1.0.pom
[ERROR] Failed to execute goal on project X: could not resolve dependencies for project ... could not transfer artifact from Custom_repo... 

有两个问题:

  1. 路径(由groupid、artifactid和version组成)/XXX/Jarfile/0.1.0/被附加到我不想要的定制报告中——我如何摆脱它
  2. 我想要的是jar文件,而不是文件。pom文件。怎样才能得到这个罐子?(我知道

非常感谢。

共有1个答案

夏侯渊
2023-03-14

maven回购比一个简单的罐子要复杂一点。您可以尝试安装一个存储服务器,如Nexus。

http://www.sonatype.org/nexus/

另请参阅这篇文章Maven内部存储库,真的这么难吗?

您还可以通过以下方式在本地存储库中安装jar文件:

mvn install:install-file -Dfile=<path-to-file> -DpomFile=<path-to-pomfile>

Maven依赖项搜索序列

>

  • 步骤1-在本地存储库中搜索依赖项,如果未找到,请转至步骤2,否则如果找到,请执行进一步的处理。

    第2步-在中央存储库中搜索依赖项,如果没有找到,并且提到了远程存储库/存储库,则移动到第4步,如果找到,则将其下载到本地存储库以供将来参考。

    步骤3-如果没有提到远程存储库,Maven只需停止处理并抛出错误(无法找到依赖)。

    第4步-在远程存储库中搜索依赖项,如果找到,则将其下载到本地存储库以供将来参考,否则Maven将按预期停止处理并抛出错误(无法找到依赖项)。

  •  类似资料:
    • 我想使用nd4j-cuda-10.2中的项目。它有两个操作系统(Linux和Windows)的jar文件。在使用windows系统时,如何将jar从Linux中排除,反之亦然?。 [Maven Repository][1][1]:https://repo1.maven.org/maven2/org/nd4j/nd4j-cuda-10.2/1.0.0-beta7/ 由于jar文件的重量。我想排除对每

    • 我有一个依赖于2 jar文件的应用程序: 操作员界面。罐子 操作员。震击器 我想使用Maven结构构建我的项目。我按照Maven站点教程创建了如下结构: 我已经把我的源文件FileProcess.javaE:\project\src\main\java\source\app。 FileProcess在2 external中具有依赖关系。jar文件,但我不知道如何在pom中定义这种依赖关系。xml。

    • 我们的结构如下: 在我们的通用api中,我们定义了protobuf消息,还定义了帮助器类和类型,并希望其他人使用它们。 当我们向客户提供common-api.jar时,他们还需要两个父pom(pom2和pom1),以便在他们自己的maven服务器上重新部署它们。 一种向他们提供POM的方法,我们可以公开我们的maven存储库,至少是所需的部分,但不幸的是,目前这不是一个选项。 有没有办法自动创建公

    • 问题内容: 我是使用Maven和Jenkins的新手。我试图继承从父pom到子pom的依赖关系,它显示以下错误: 这是我的父母POM: 这是我的孩子POM: 这是我尝试从父POM继承子POM中的依赖项的方法: 如果我将相同的依赖项放在子POM中,则效果很好。我使用jenkins在nexus中进行安装和部署。我正在使用maven-3.3.9。在詹金斯,我从git中阅读了两个不同的Maven项目中的父

    • 我试图理解maven是如何从存储库中下载二进制文件的。 例如,我的项目有以下依赖关系: 现在,这些二进制文件出现在http://mvnrepository.com/. 在pom.xml中,我们有

    • 我在本地发布了一个依赖项。依赖项位于路径上 我认为这是Windows上的默认路径。 现在,在另一个项目中,我尝试使用这个库。我的<code>构建。gradle如下所示(以及其他依赖项) 我收到构建错误,某些类不存在等... 这不足以从本地存储库中识别依赖项吗? 我也为其他依赖项使用远程存储库,但工件名称版本是唯一的(com.mycompany:mylibrary:1.0)。我希望从本地存储库中找到