未找到一些远程 Maven 存储库依赖项

问题描述 投票:0回答:1

我正在尝试将大型 Java Web 应用程序转换为 Eclipse 中的 Maven 项目。我们使用的大多数

jar
文件都位于中央 Maven 存储库中,但有 6 个文件不在中央 Maven 存储库中。我研究了如何创建共享远程(个人)Maven 存储库。我与团队中的其他开发人员在共享服务器上创建了一个(示例共享网络位置
SHAREDSERVER
)。我设置了
pom.xml
来识别该存储库和中央 Maven 存储库:

  <repositories>
    <repository>
        <id>custom-repo</id>
        <url>file://SHAREDSERVER/custom/repo</url>
    </repository>
    <repository>
        <id>central</id>
        <url>https://repo.maven.apache.org/maven2</url>
    </repository>
  </repositories>

然后,在服务器上运行 Maven 命令:

mvn install:install-file
    -Dfile=C:\location\of\jar\file
    -DgroupId="com.my.group"
    -DartifactId=art-one-name
    -Dversion="1.0"
    -Dpackaging=jar
    -DlocalRepositoryPath=C:\custom\repo

没有显示任何错误,因此我检查所有文件是否都位于该位置

C:\custom\repo\com\my\group
- 它们都在那里。

然后在我正在开发项目的本地计算机上,我将此依赖项添加到

pom.xml
:

<dependency>
    <groupId>com.my.group</groupId>
    <artifactId>art-one-name</artifactId>
    <version>1.0</version>
</dependency>

我的 Eclipse IDE 或其他地方没有显示错误。 (并且已成功获取来自中央 Maven 存储库的所有依赖项。)

然后我重复该过程,将工件

art-two-name
添加到同一组
com.my.group
。过程中没有任何错误。但是,当我在项目的
art-two-name
中包含
pom.xml
的依赖项时,它会显示:

Missing artifact com.my.group:art-two-name:jar:1.0
Could not find artifact com.my.group:art-two-name:jar:1.0 in custom-repo (file://SHAREDSERVER/custom/repo)

我尝试删除存储库并创建一个新存储库;但同样的问题也出现了。我尝试从 Eclipse 运行该项目,看看

pom.xml
中显示的错误消息是否毫无意义/肤浅,但它没有部署,给了我错误:

Error reading file C:\Users\myUsername\.m2\repository\com\my\group\art-two-name\1.0\art-two-name-1.0.jar
C:\Users\myUsername\.m2\repository\com\my\group\art-two-name\1.0\art-two-name-1.0.jar (The system cannot find the file specified)

很明显,它没有从

custom-repo
获取 jar 文件。

有什么想法为什么它只能找到一个的依赖项/jar,而我可以在

custom-repo
中看到它们?

(注意:这只是一个例子;我实际上先将 all jar 文件添加到

custom-repo
中,然后我尝试将它们添加为
pom.xml
中的依赖项,并意识到 Eclipse 只能找到其中一个依赖项。)

maven jar dependencies pom.xml mvn-repo
1个回答
0
投票

我不知道为什么我遇到的所有错误都毫无帮助,而且我找到的所有文档都没有这么说,但问题是这样的:

我的自定义

repository
中的
pom.xml
块需要进行此更改:

<url>file://SHAREDSERVER/custom/repo</url>

应该是

<url>file:\\SHAREDSERVER\custom\repo</url>

注意

\
vs.
/
的方向!这是 Windows 文件资源管理器中使用的斜杠的方向! (这适用于共享网络位置上的存储库。)

© www.soinside.com 2019 - 2024. All rights reserved.