(XII)约定优于配置

Convention Over Configuration

Maven提倡“约定优于配置”,这是Maven最核心的设计理念之一。使用约定可以大量减少配置。

我们需要遵循Maven的约定:

  • 源码目录为 src/main/java/
  • 编译输出目录为 target/classes
  • 打包方式为 jar
  • 包输出目录为target/

遵循约定虽然损失了一定的灵活性,用户不能随意安排目录结构,但是可以减少配置。同时帮助用户遵守构建标准。

自定义约定


  com.play.myMaven
  hello-maven-aggregator
  1.0-SNAPSHOT
  pom
  
    src/java
  

这样源码目录就成了src/java而不是默认的src/main/java

超级POM

找到~\lib\maven-model-builder-3.3.9\org\apache\maven\model中的pom-4.0.0.xml

仓库定义

  
    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.3.2
    
  

Maven设定核心插件是为了防止由于版本变化而造成构建不稳定。
更多关于插件配置,飞机票→Maven插件

你可能感兴趣的:((XII)约定优于配置)