Java 如何在使用maven更新子依赖项之后更新父依赖项

Java 如何在使用maven更新子依赖项之后更新父依赖项,java,maven,Java,Maven,我使用IDEA,我的springboot应用程序包含多个这样的模块: parent -web -service -dao 在pom.xml中定义的service模块中有一个jar依赖项common:1.2.0-SNAPSHOT,我将其版本更新为1.3.0-SNAPSHOT,之后我重新导入并运行mvn clean install-U,但这两个版本仍然在依赖项列表中,在依赖项树中,依赖项中有两个jar,另外,当我运行应用程序时,它会抛出我在1.3.0-SNAPSHOT中添加的NoClassD

我使用IDEA,我的springboot应用程序包含多个这样的模块:

parent
 -web
 -service
 -dao
在pom.xml中定义的
service
模块中有一个jar依赖项
common:1.2.0-SNAPSHOT
,我将其版本更新为
1.3.0-SNAPSHOT
,之后我重新导入并运行
mvn clean install-U
,但这两个版本仍然在依赖项列表中,在依赖项树中,依赖项中有两个jar,另外,当我运行应用程序时,它会抛出我在1.3.0-SNAPSHOT中添加的
NoClassDefFoundError
错误

这是我的maven依赖树:

service:jar
+- dao:jar
\- common:jar:1.3.0-SNAPSHOT

web:jar
+- service:jar
  +- dao:jar
  \- common:jar:1.2.0-SNAPSHOT
\- others:jar
服务pom依赖项:

<dependency>
   <groupId>com</groupId>
   <artifactId>common</artifactId>
   <version>1.3.0-SNAPSHOT</version>
</dependency>

通用域名格式
常见的
1.3.0-快照

如何更新依赖项?

正如@Haroon@chrylis所说,我检查了父项
pom.xml
,发现在这个pom中配置了

    <parent>
        <groupId>insight.plat</groupId>
        <artifactId>insight-bom-base</artifactId>
        <version>1.0.0-SNAPSHOT</version>
    </parent>
正如maven doc所示


父级
dependencManagement
的优先级高于可传递依赖项,因此在服务模块中,它使用
common 1.2.0-SNAPSHOT

您可能应该使用Maven
,两者都位于
父级
模块中。@chrylis,添加pom依赖项,公共版本在服务pom中定义,并且,我选中了
,没有定义公共版本。将检查其他依赖项的配置。您是否有机会在pom中设置服务模块和web的版本是指旧版本的服务模块?@Haroon@chrylis,再次检查,发现父pom.xml中有
,在此pom下,通用版本是
1.3.0-SNAPSHOT
,感谢您的帮助!解决方案是更新父pom文件中的公共版本
<dependencyManagement>
<dependency>
        <groupId>com</groupId>
        <artifactId>common</artifactId>
        <version>1.2.0-SNAPSHOT</version>
</dependencyManagement>
Dependency management - this allows project authors to directly specify the 
versions of artifacts to be used when they are encountered in transitive 
dependencies or in dependencies where no version has been specified. 
In the example in the preceding section a dependency was directly added to A even though 
it is not directly used by A. 
Instead, A can include D as a dependency in its dependencyManagement section and directly 
control which version of D is used when, or if, it is ever referenced.