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

maven依赖管理

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

maven依赖管理_依赖管理和Maven_第1张图片

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

   < 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 " > 
     < modelVersion >4.0.0 
     < groupId >org.example 
     < artifactId >maven-dependency-management 
     < packaging >pom 
     < version >1.0-SNAPSHOT 
     < properties > 
         < akka.version >2.5.31 
         < akka.http.version >10.1.11 
         < scala.binary.version >2.12 
      
     < modules > 
         < module >child-one 
      
     < dependencyManagement > 
         < dependencies > 
             < dependency > 
                 < groupId >com.typesafe.akka 
                 < artifactId >akka-stream_2.12 
                 < version >${akka.version} 
              
             < dependency > 
                 < groupId >com.typesafe.akka 
                 < artifactId >akka-http_2.12 
                 < version >${akka.http.version} 
              
             < dependency > 
                 < groupId >com.typesafe.akka 
                 < artifactId >akka-http-spray-json_2.12 
                 < version >${akka.http.version} 
              
          
        

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

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

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

   < 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 " > 
     < parent > 
         < artifactId >maven-dependency-management 
         < groupId >org.example 
         < version >1.0-SNAPSHOT 
      
     < modelVersion >4.0.0 
     < artifactId >child-one 
     < dependencies > 
         < dependency > 
             < groupId >com.typesafe.akka 
             < artifactId >akka-stream_2.12 
          
         < dependency > 
             < groupId >com.typesafe.akka 
             < artifactId >akka-http_2.12 
          
         < dependency > 
             < groupId >com.typesafe.akka 
             < artifactId >akka-http-spray-json_2.12 
          
        

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

   < 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 " > 
     < modelVersion >4.0.0 
     < groupId >org.example 
     < artifactId >independent-project 
     < version >1.0-SNAPSHOT 
     < dependencyManagement > 
         < dependencies > 
             < dependency > 
                 < artifactId >maven-dependency-management 
                 < groupId >org.example 
                 < version >1.0-SNAPSHOT 
                 < type >pom 
                 < scope >import 
              
          
      
     < dependencies > 
         < dependency > 
             < groupId >com.typesafe.akka 
             < artifactId >akka-stream_2.12 
          
         < dependency > 
             < groupId >com.typesafe.akka 
             < artifactId >akka-http_2.12 
          
         < dependency > 
             < groupId >com.typesafe.akka 
             < artifactId >akka-http-spray-json_2.12 
          
        

如您所见

 < dependencyManagement > 
         < dependencies > 
             < dependency > 
                 < artifactId >maven-dependency-management 
                 < groupId >org.example 
                 < version >1.0-SNAPSHOT 
                 < type >pom 
                 < scope >import 
              
          
      

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

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

maven依赖管理

你可能感兴趣的:(maven依赖管理_依赖管理和Maven)