在 Maven 中管理依赖项可以很好地与 dependencyManagement 配合使用——我想你对它很熟悉。您可以将此dependencyManagement 外包给专用POM:所谓的BOM POM(请参阅http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html)。
在您的情况下,此 BOM POM 可能由您的产品 A、B 和 C 共享。因此,您应该定义一个仅包含此 BOM POM 的 Maven 项目,以及第三方软件 X、Y 和 Z 的所有依赖项管理。该项目可以被释放,您可以使用范围导入添加对 BOM POM 的依赖项。
您的 BOM POM:
<project>
<groupId>com.acme</groupId>
<artifactId>my-thirdparty-bom-pom</artifactId>
<version>1.0-SNAPSHOT</version>
...
<dependencyManagement>
<dependencies>
<dependency>
<groupId>...</groupId>
<artifactId>X</artifactId>
<version>...</version>
</dependency>
<dependency>
<groupId>...</groupId>
<artifactId>Y</artifactId>
<version>...</version>
</dependency>
<dependency>
<groupId>...</groupId>
<artifactId>Z</artifactId>
<version>...</version>
</dependency>
</dependencies>
<dependencyManagement>
...
</project>
项目 A 的示例导入
<project>
...
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.acme</groupId>
<artifactId>my-thirdparty-bom-pom</artifactId>
<version>1.0-SNAPSHOT</version>
<scope>import</scope>
<dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>...</groupId>
<artifactId>Y</artifactId>
<!-- the version is managed by the thirdparty bom imported above -->
</dependency>
</dependencies>
...
</project>