Intellij Maven [无法解决依赖关系]

Intellij Maven [Cannot resolve dependency]

我在我的服务器上设置了 Nexus (api.lielamar.com) 并上传了我的第一个名为 PacketManager 的项目。 您可以在这里查看:https://api.lielamar.com/#browse/browse:maven-public

出于某种原因,当我尝试通过 pom.xml 导入它时,它根本不起作用。我对 Maven 很陌生,对 Nexus 也很陌生,所以这可能是一个新手问题。 我尝试使用 google,但找不到适合我的直接答案。

这是我的代码:

    <repositories>
    <repository>
        <id>lielamar-repo</id>
        <url>https://api.lielamar.com/service/rest/repository/browse/maven-public/</url>
    </repository>
    <repository>
        <id>spigot-repo</id>
        <url>https://hub.spigotmc.org/nexus/content/repositories/snapshots/</url>
    </repository>
</repositories>

<dependencies>
    <dependency>
        <groupId>org.spigotmc</groupId>
        <artifactId>spigot</artifactId>
        <version>1.8.8-R0.1-SNAPSHOT</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>com.lielamar.packetmanager</groupId>
        <artifactId>PacketManager</artifactId>
        <version>1.0</version>
    </dependency>
</dependencies>

我也在使用 spigot 存储库,它工作得很好。 This is what I see on the IDE

感谢您的宝贵时间!

编辑: 其中一个问题是,当 运行ning mvn install 或尝试通过 intellij 编译时,我的依赖项调用了不同的 repo。 将以下代码添加到 setting.xml 后,我开始收到不同的错误:

    <mirrors>
    <mirror>
        <id>lielamar-mirror</id>
        <name>lielamar mirror</name>
        <url>https://api.lielamar.com/service/rest/repository/browse/maven-public/</url>
        <mirrorOf>lielamar-api</mirrorOf>
    </mirror>
</mirrors>

添加上述代码后出现的错误是:

[ERROR] Failed to execute goal on project TestPlugin:
Could not resolve dependencies for project com.lielamar.testplugin:TestPlugin:jar:1.0:
Failure to find com.lielamar.packetmanager:PacketManager:jar:1.0 in
https://api.lielamar.com/service/rest/repository/browse/maven-public/ was cached in the local repository,
resolution will not be reattempted until the update interval of lielamar-mirror has elapsed or updates are forced -> [Help 1]`

我从 c​​md 运行 命令 mvn dependency:purge-local-repository 成功构建,但是,intellij 仍然给我一个错误:https://prnt.sc/unxppz

您在 Nexus 中的 JAR 文件以 ..jar 结尾,因此您在上传它们时可能犯了错误(两个点而不是一个)。

您需要在 pom.xml

中添加
<distributionManagement>
<snapshotRepository>
<repository>
<id>you-repository-name</id>
<url>http://you-repository-url</url>
</repository>
<snapshotRepository>
</distributionManagement>

我觉得还可以。你检查过docs了吗?也许您需要先设置 Maven。为确保这是一个 Maven 问题,还请尝试 运行 从 Intellij 外部构建您的 Maven —— 这只是一种常见的做法,因为我怀疑 Intellij 是否与它有任何关系。

将您的存储库 url 替换为 https://api.lielamar.com/repository/maven-releases/ 如果您检查 nexus,您拥有的那个指向一个组。 如果完全可以引用第一组,则可能需要以不同的方式引用它们。

或者您可能需要这样的东西https://docs.gitlab.com/ee/user/packages/maven_repository/#group-level-maven-endpoint

<repositories>
  <repository>
    <id>gitlab-maven</id>
    <url>https://gitlab.com/api/v4/groups/GROUP_ID/-/packages/maven</url>
  </repository>
</repositories>
<distributionManagement>
  <repository>
    <id>gitlab-maven</id>
    <url>https://gitlab.com/api/v4/projects/PROJECT_ID/packages/maven</url>
  </repository>
  <snapshotRepository>
    <id>gitlab-maven</id>
    <url>https://gitlab.com/api/v4/projects/PROJECT_ID/packages/maven</url>
  </snapshotRepository>
</distributionManagement>