Apache MAVEN:如何在repo中没有pom的情况下从非标准存储库中指定jar依赖项?

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

我在以下repo中有一个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 compile’时输出是:

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... 

有两个问题:

>路径(由groupid,artifactid和版本组成)/XXX/Jarfile/0.1.0/被附加到我不想要的Custom_repo – 我怎么能摆脱它?
>我想获取jar文件而不是.pom文件.拿到罐子可以做些什么? (我知道< systemPath> – 但这是从系统中取出jar而不是来自repo)

谢谢.

最佳答案 maven repo比简单的jar有点复杂.您可以尝试安装Rexotory服务器,例如Nexus.

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

另见这篇文章
Maven Internal Repository, Is it Really This Hard?

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

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

Maven依赖关系搜索序列

>步骤1 – 在本地存储库中搜索依赖项,如果未找到,则移至
如果找到则执行步骤2,然后进行进一步处理.
>步骤2 – 如果未找到,则在中央存储库中搜索依赖关系
提到远程存储库/存储库然后转到步骤4
如果找到,则将其下载到本地存储库以备将来使用
参考.
>步骤3 – 如果没有提到远程存储库,Maven就是
停止处理并抛出错误(无法找到依赖项).
>步骤4 – 在远程存储库或存储库中搜索依赖项,如果
发现然后将其下载到本地存储库以供将来参考
否则Maven会按预期停止处理并抛出错误(无法使用
找到依赖).

点赞