【问题标题】:Replace maven library with local one用本地库替换 maven 库
【发布时间】:2019-06-05 08:05:05
【问题描述】:

我在 pom 中依赖于某个库。 我想对其进行一些更改,在本地对其进行测试,如果它可以正常工作 - 将其部署到远程仓库。 所以我在本地对该库进行了一些更改,将其安装为 jar,并希望将我的主项目远程库中的远程库替换为本地库。

什么是正确的方法?

【问题讨论】:

  • 视情况而定。您使用 Nexus 还是 Artifactory?这是您自己的图书馆(或第三方图书馆)吗?您使用的是哪种构建工具?你试过什么?
  • 请注意,Maven 的思维方式是非 SNAPSHOT 工件通常被冻结,并且任何副本都与其他任何副本一样好,因此缓存可能会造成破坏,并且您的构建将无法重现。这意味着,要么使用快照,要么非常小心你所做的事情。创建一个新的工件可能是最好的解决方案。

标签: java maven jar


【解决方案1】:

您可以在项目的 pom 中覆盖默认的 maven 存储库:

 <repositories>
    <repository>
      <id>central</id>
      <url>file://d:/repo</url>
    </repository>
  </repositories>

【讨论】:

    【解决方案2】:

    解决依赖关系时,Maven 会查看您的本地存储库 ($HOME/.m2/repository)。因此,如果您已将修改后的依赖项安装到本地存储库中(例如通过mvn install),那么当您构建主项目时,它将被使用。

    为了使这一点更明显,您可能需要更改库和主项目 POM 中使用的版本,以便确保您的版本正在用于测试。

    您可能还会发现此问题/答案很有用:How do I force Maven to use my local repository rather than going out to remote repos to retrieve artifacts?

    【讨论】:

      【解决方案3】:

      Maven 首先在你的本地仓库中查找

      C:\Users\User\.m2\repository

      如果它找不到库,那么它会在远程仓库中查找。如果我正确理解您的问题,只要您在 POM 中指出正确的版本,这应该会自动发生。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-01-10
        • 2017-06-12
        • 2012-06-01
        • 2017-05-02
        • 1970-01-01
        • 2013-10-11
        • 2012-11-29
        • 1970-01-01
        相关资源
        最近更新 更多