Java Maven不使用更新的本地构建/安装的依赖项

Java Maven不使用更新的本地构建/安装的依赖项,java,maven,dependencies,Java,Maven,Dependencies,我最近遇到了一个令人讨厌的问题。我在我的开发机器上签出了两个不同的maven项目。一个项目依赖于另一个项目(假设项目A依赖于项目B),我积极地对这两个项目进行更改。但有时,项目A不会接受项目B的最新更改。假设我对项目B做了一些更改,我使用 mvn清洁安装 我甚至检查了我的本地~/.m2/存储库,以查看jar是否已更新。但项目A仍将继续使用项目B的旧版本。即使它刚刚更新。。。如果我删除整个项目B文件夹,如 rm-rf~/.m2/repository/project-b/version/ 然后再次构

我最近遇到了一个令人讨厌的问题。我在我的开发机器上签出了两个不同的maven项目。一个项目依赖于另一个项目(假设项目A依赖于项目B),我积极地对这两个项目进行更改。但有时,项目A不会接受项目B的最新更改。假设我对项目B做了一些更改,我使用

mvn清洁安装

我甚至检查了我的本地~/.m2/存储库,以查看jar是否已更新。但项目A仍将继续使用项目B的旧版本。即使它刚刚更新。。。如果我删除整个项目B文件夹,如

rm-rf~/.m2/repository/project-b/version/

然后再次构建/安装项目B,此时我的问题消失了。项目A最终将使用更新后的项目B。但我不想每次都进行这个练习。有什么线索导致这一切吗

编辑:以下是两个项目的pom.xml的相关部分。这是非常基本的

创建一个pom.xml项目

<project
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
    xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <modelVersion>4.0.0</modelVersion>

  <parent>
    <groupId>org.opendaylight.mdsal</groupId>
    <artifactId>binding-parent</artifactId>
    <version>3.0.10</version>
    <relativePath/>
  </parent>

  <groupId>company.group</groupId>
  <version>1.0.0-SNAPSHOT</version>
  <artifactId>project-A</artifactId>
  <packaging>bundle</packaging>

  <dependencies>
    <dependency>
      <groupId>company.group</groupId>
      <artifactId>project-B</artifactId>
      <version>3.1.0-SNAPSHOT</version>
    </dependency>
    ...
  </dependencies>
</project>

4.0.0
org.opendaylight.mdsal
绑定父级
3.0.10
公司集团
1.0.0-SNAPSHOT
项目A
捆
公司集团
B项目
3.1.0-快照
...
项目B pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>company.group</groupId>
    <artifactId>project-B-parent</artifactId>
    <version>3.1.0-SNAPSHOT</version>
  </parent>

  <groupId>company.group</groupId>
  <artifactId>project-B</artifactId>
  <version>3.1.0-SNAPSHOT</version>
  <packaging>bundle</packaging>

  <dependencies>
     ...
  <dependencies>
</project>

4.0.0
公司集团
项目B-家长
3.1.0-快照
公司集团
B项目
3.1.0-快照
捆
...

由于您在右上角使用IntelliJ,因此有一个maven菜单,您可以在其中重新导入所有依赖项,这在本例中对我很有帮助:)


尝试使用下面的maven命令加载所有更新的库


mvn clean install-U

您使用的是哪种IDE?我使用的是IntelliJ,但这根本不重要。当我使用mvn在CLI中为项目A构建捆绑包时,最终的tarball仍然使用较旧版本的项目B。您是否使用maven版本控制约定?项目是否也构建在构建服务器上,并且可能通过远程存储库进入?B库是否作为快照进行版本控制?是的,我正在使用它。这根本没用。我想你重新启动了IntelliJ?如果是这样的话,我就不知道了。对我来说唯一的区别是,我使用CLI在IntelliJ和none中构建,并且我还使用
clean
。这会强制从远程存储库进行更新,我希望避免这种情况。我想使用本地构建的jar版本。试试看