Maven Pom文件详解

Pom全称Project Object Model(工程对象模型)。Pom文件是Maven运行的基础,其中详细描述了一些详细的工程配置信息。

Pom文件分类

默认Pom文件内容


  4.0.0
 
  
    
      central
      Central Repository
      https://repo.maven.apache.org/maven2
      default
      
        false
      
    
  
 
  
    
      central
      Central Repository
      https://repo.maven.apache.org/maven2
      default
      
        false
      
      
        never
      
    
  
 
  
    ${project.basedir}/target
    ${project.build.directory}/classes
    ${project.artifactId}-${project.version}
    ${project.build.directory}/test-classes
    ${project.basedir}/src/main/java
    ${project.basedir}/src/main/scripts
    ${project.basedir}/src/test/java
    
      
        ${project.basedir}/src/main/resources
      
    
    
      
        ${project.basedir}/src/test/resources
      
    
    
      
      
      
        
          maven-antrun-plugin
          1.3
        
        
          maven-assembly-plugin
          2.2-beta-5
        
        
          maven-dependency-plugin
          2.8
        
        
          maven-release-plugin
          2.5.3
        
      
    
  
 
  
    ${project.build.directory}/site
  
 
  
    
    
      release-profile
 
      
        
          performRelease
          true
        
      
 
      
        
          
            true
            maven-source-plugin
            
              
                attach-sources
                
                  jar-no-fork
                
              
            
          
          
            true
            maven-javadoc-plugin
            
              
                attach-javadocs
                
                  jar
                
              
            
          
          
            true
            maven-deploy-plugin
            
              true
            
          
        
      
    
  
 

最小规格Pom文件


  4.0.0
 
  com.mycompany.app
  my-app
  1

子工程继承父工程pom配置值

|-- my-module
 |   `-- pom.xml
 `-- pom.xml

子pom文件内容


  4.0.0
 
  
    com.mycompany.app
    my-app
    1
  
 
  com.mycompany.app
  my-module
  1

Noting:

子pom文件中的version、groupId等属性可以从父目录的pom文件中继承。

因此,子pom文件中的version、groupId标签可以删除,默认继承父级pom文件中的配置。

项目聚合Pom

父子目录结构如下

|-- my-module
 |   `-- pom.xml
 `-- parent
     `-- pom.xml

父级pom指定子模块pom文件位置:


  4.0.0
 
  com.mycompany.app
  my-app
  1
  pom
 
  
    ../my-module
  

子pom文件配置指定父pom文件位置:


  4.0.0
 
  
    com.mycompany.app
    my-app
    1
    ../parent/pom.xml
  
 
  my-module

Noting:通过relativePath标签指定子pom文件相对父pom文件所在位置。

Pom文件中定义共用变量

通过占位符${project.version}获取实际值。

pom中定义属性:

  
    3.0
  

pom中通过占位符获取属性值:


      org.apache.maven
      maven-core
      ${mavenVersion}
    

通过占位符直接获取项目配置:

${project.groupId}, 
${project.version}, 
${project.build.sourceDirectory}

你可能感兴趣的:(java,maven,java)