maven依赖管理_依赖管理和Maven

川长思鸟来 2023-02-25 03:55 177阅读 0赞

maven依赖管理

Maven伟大而成熟。 几乎所有事物都总有解决方案。 您可能在组织项目上遇到的主要情况是依赖管理。 而不是每个项目都具有自己的依赖关系,您需要一种集中的方式来继承那些依赖关系。

format_png

在这种情况下,您可以在父舞会上声明托管依赖项。 在我的示例中,我只想包含Akka流依赖项。

  1. <? xml version = "1.0" encoding = "UTF-8" ?> < 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/xsd/maven-4.0.0.xsd " >
  2. < modelVersion >4.0.0</ modelVersion >
  3. < groupId >org.example</ groupId >
  4. < artifactId >maven-dependency-management</ artifactId >
  5. < packaging >pom</ packaging >
  6. < version >1.0-SNAPSHOT</ version >
  7. < properties >
  8. < akka.version >2.5.31</ akka.version >
  9. < akka.http.version >10.1.11</ akka.http.version >
  10. < scala.binary.version >2.12</ scala.binary.version >
  11. </ properties >
  12. < modules >
  13. < module >child-one</ module >
  14. </ modules >
  15. < dependencyManagement >
  16. < dependencies >
  17. < dependency >
  18. < groupId >com.typesafe.akka</ groupId >
  19. < artifactId >akka-stream_2.12</ artifactId >
  20. < version >${akka.version}</ version >
  21. </ dependency >
  22. < dependency >
  23. < groupId >com.typesafe.akka</ groupId >
  24. < artifactId >akka-http_2.12</ artifactId >
  25. < version >${akka.http.version}</ version >
  26. </ dependency >
  27. < dependency >
  28. < groupId >com.typesafe.akka</ groupId >
  29. < artifactId >akka-http-spray-json_2.12</ artifactId >
  30. < version >${akka.http.version}</ version >
  31. </ dependency >
  32. </ dependencies >
  33. </ dependencyManagement > </ project >

我使用的是依赖性管理模块。

现在,子项目无需指定版本即可包含这些库。 派生和管理版本至关重要。 如果版本不兼容,可能会带来许多不愉快的惊喜。

现在,在子模块上,由于版本是子模块,因此声明了没有版本的版本。

  1. <? xml version = "1.0" encoding = "UTF-8" ?> < 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/xsd/maven-4.0.0.xsd " >
  2. < parent >
  3. < artifactId >maven-dependency-management</ artifactId >
  4. < groupId >org.example</ groupId >
  5. < version >1.0-SNAPSHOT</ version >
  6. </ parent >
  7. < modelVersion >4.0.0</ modelVersion >
  8. < artifactId >child-one</ artifactId >
  9. < dependencies >
  10. < dependency >
  11. < groupId >com.typesafe.akka</ groupId >
  12. < artifactId >akka-stream_2.12</ artifactId >
  13. </ dependency >
  14. < dependency >
  15. < groupId >com.typesafe.akka</ groupId >
  16. < artifactId >akka-http_2.12</ artifactId >
  17. </ dependency >
  18. < dependency >
  19. < groupId >com.typesafe.akka</ groupId >
  20. < artifactId >akka-http-spray-json_2.12</ artifactId >
  21. </ dependency >
  22. </ dependencies > </ project >

另一方面,有时我们想使用另一个项目的依赖关系管理,而不必将该项目作为我们的父项。 在这些情况下,当您已经具有父项目时,您需要包括来自父项目的依赖关系管理。

  1. <? xml version = "1.0" encoding = "UTF-8" ?> < 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/xsd/maven-4.0.0.xsd " >
  2. < modelVersion >4.0.0</ modelVersion >
  3. < groupId >org.example</ groupId >
  4. < artifactId >independent-project</ artifactId >
  5. < version >1.0-SNAPSHOT</ version >
  6. < dependencyManagement >
  7. < dependencies >
  8. < dependency >
  9. < artifactId >maven-dependency-management</ artifactId >
  10. < groupId >org.example</ groupId >
  11. < version >1.0-SNAPSHOT</ version >
  12. < type >pom</ type >
  13. < scope >import</ scope >
  14. </ dependency >
  15. </ dependencies >
  16. </ dependencyManagement >
  17. < dependencies >
  18. < dependency >
  19. < groupId >com.typesafe.akka</ groupId >
  20. < artifactId >akka-stream_2.12</ artifactId >
  21. </ dependency >
  22. < dependency >
  23. < groupId >com.typesafe.akka</ groupId >
  24. < artifactId >akka-http_2.12</ artifactId >
  25. </ dependency >
  26. < dependency >
  27. < groupId >com.typesafe.akka</ groupId >
  28. < artifactId >akka-http-spray-json_2.12</ artifactId >
  29. </ dependency >
  30. </ dependencies > </ project >

如您所见

  1. < dependencyManagement >
  2. < dependencies >
  3. < dependency >
  4. < artifactId >maven-dependency-management</ artifactId >
  5. < groupId >org.example</ groupId >
  6. < version >1.0-SNAPSHOT</ version >
  7. < type >pom</ type >
  8. < scope >import</ scope >
  9. </ dependency >
  10. </ dependencies >
  11. </ dependencyManagement >

我们包括了另一个项目的依赖性管理,可以将其应用于继承多个项目的依赖性。

翻译自: https://www.javacodegeeks.com/2020/06/dependency-management-and-maven.html

maven依赖管理

发表评论

表情:
评论列表 (有 0 条评论,177人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Maven依赖管理

    定义maven坐标 每个maven工程都需要定义本工程的坐标,坐标是maven对jar包的身份定义。 <!--项目名称,定义为组织名+项目名,类似包名-->

    相关 maven依赖机制及依赖管理

    maven依赖机制及依赖管理 依赖性传递: 依赖调解: 当项目中出现多个版本构件依赖的情形,依赖调解决定最终应该使用哪个版本。当然,你也可以在项目POM文件中

    相关 Maven依赖管理大全

    大家都知道随着业务的进展,项目会变得越来越多,这个时候如果没有一个统一的依赖管理中心,就会有很多问题发生。 如果没有依赖管理中心,会发生哪些问题呢? 1. 项目的依赖会有

    相关 Maven 依赖管理

    Maven 依赖管理 Maven 一个核心的特性就是依赖管理。当我们处理多模块的项目(包含成百上千个模块或者子项目),模块间的依赖关系就变得非常复杂,管理也变得很困难。针...