gpt4 book ai didi

maven - 如何在 Maven 中定义一组命名的相关依赖项?

转载 作者:行者123 更新时间:2023-12-02 00:16:08 26 4
gpt4 key购买 nike

我有几个独立的项目(它们的父项目不同)但它们使用同一组库。例如

  • 项目A
  • 项目 B
  • 项目 C

所有这些项目都使用了 Spring、Postgres、Hibrenate 和 tomcat。我想做的是按照以下几行介绍命名的依赖项集合的概念:

  • TSHP 1.0 - 可能包括 tomcat 6.0.35、Spring 3.0.7、Hibernate 3.6.8 ...等
  • TSHP 2.0 - 可能由 tomcat 7.0.32、Spring 3.1.2、Hibernate 4.1.7 等组成

我希望能够说项目 A 依赖于 TSHP 1.0,项目 B 依赖于 TSHP 2.0...等等。我看到的这种设置的值(value)是

  • 很容易对一组与公司一起使用的通用库进行标准化,因此跨项目的审核很容易,如果您知道,就不必深入研究项目的 pom 来查看其中的内容它正在使用一组命名的依赖项
  • 使用标准类路径启动一个新项目可能非常容易,因为应该可以只包含对命名组的单个依赖项并获得该类型应用程序所需的一切,只需要一个人找出并验证命名类路径中的 jar 组合确实可以很好地相互配合。

这种类型的设置可以用 maven3 完成吗?如果是这样怎么办?

更新:我在父级 pom 设置中看到的问题是一个 POM 只能有一个父级,但我可能有几个标准的命名类路径,例如:

  • WEB_SECURITY - 可能是用于防止常见网络安全问题的 jar 集合,因此网络应用程序可能包含 TSHP + WEB_SECURITY,而批处理应用程序可能仅包含 TSHP。组合比继承更好,也更灵活。

最佳答案

为“平台”创建一个新项目,即您要一起使用的依赖项组。它的包装类型应该是:pom

<project>
<groupId>…</groupId>
<artifactId>tshp-platform</artifactId>
<version>1.0</version>
<packaging>pom</packaging>
<dependencies>
<!-- Dependencies for TSHP 1.0 -->
</dependencies>

pom 的 1.0 版。然后更新 TSHP 2.0 的版本和依赖项。然后释放它。

现在您的项目可以简单地声明对 pom 项目的依赖,并且会传递地选择平台。

但是请注意,显式声明每个项目直接依赖的 Artifact 通常被认为是一种好的做法。但是,这不是必需的。

关于maven - 如何在 Maven 中定义一组命名的相关依赖项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13018828/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com