美文网首页Maven
(XII)约定优于配置

(XII)约定优于配置

作者: SonyaBaby | 来源:发表于2018-06-25 16:10 被阅读0次

Convention Over Configuration

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

我们需要遵循Maven的约定:

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

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

自定义约定

<project>
  <groupId>com.play.myMaven</groupId>
  <artifactId>hello-maven-aggregator</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>pom</packaging>
  <build>
    <sourceDirectory>src/java</sourceDirectory>
  </build>
</project>

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

超级POM

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

仓库定义
<repositories>
  <repository>
    <id>central</id>
    <name>Central Repository</name>
    <url>https://repo.maven.apache.org/maven2</url>
    <layout>default</layout>
    <snapshots>
      <enabled>false</enabled>
    </snapshots>
  </repository>
</repositories>

<pluginRepositories>
  <pluginRepository>
    <id>central</id>
    <name>Central Repository</name>
    <url>https://repo.maven.apache.org/maven2</url>
    <layout>default</layout>
    <snapshots>
      <enabled>false</enabled>
    </snapshots>
    <releases>
      <updatePolicy>never</updatePolicy>
    </releases>
  </pluginRepository>
</pluginRepositories>

关于仓库详细介绍,飞机票→仓库介绍

项目结构定义
<build>
   <directory>${project.basedir}/target</directory>
   <outputDirectory>${project.build.directory}/classes</outputDirectory>
   <finalName>${project.artifactId}-${project.version}</finalName>
   <testOutputDirectory>${project.build.directory}/test-classes</testOutputDirectory>
   <sourceDirectory>${project.basedir}/src/main/java</sourceDirectory>
   <scriptSourceDirectory>${project.basedir}/src/main/scripts</scriptSourceDirectory>
   <testSourceDirectory>${project.basedir}/src/test/java</testSourceDirectory>
   <resources>
     <resource>
       <directory>${project.basedir}/src/main/resources</directory>
     </resource>
   </resources>
   <testResources>
     <testResource>
       <directory>${project.basedir}/src/test/resources</directory>
     </testResource>
   </testResources>
    ...
</build>

依次定义了项目的主输出目录、主代码输出目录、最终构件的名称格式、测试代码输出目录、主源码目录、脚本源码目录、测试源码目录、主资源目录和测试资源目录。

核心插件设定版本
<pluginManagement>
  <plugins>
    <plugin>
      <artifactId>maven-antrun-plugin</artifactId>
      <version>1.3</version>
    </plugin>
    <plugin>
      <artifactId>maven-assembly-plugin</artifactId>
      <version>2.2-beta-5</version>
    </plugin>
    <plugin>
      <artifactId>maven-dependency-plugin</artifactId>
      <version>2.8</version>
    </plugin>
    <plugin>
      <artifactId>maven-release-plugin</artifactId>
      <version>2.3.2</version>
    </plugin>
  </plugins>
</pluginManagement>

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

相关文章

  • (XII)约定优于配置

    Convention Over Configuration Maven提倡“约定优于配置”,这是Maven最核心的...

  • 通用配置模块的设计

    引言 约定优于配置,配置趋于灵活 约定优于配置(convention over configuration),也称...

  • Spring Boot:基本应用和源码解析

    SpringBoot 基本应用 约定优于配置 约定优于配置(Convention over Configurati...

  • Spring Boot 约定优于配置

    一、约定优于配置 约定优于配置(Convention Over Configuration),也称作按约定编程是一...

  • Spring Boot & Spring Cloud

    Spring Boot 约定优于配置 约定优于配置是一种软件设计范式,就是遵循约定 Spring 解决SSM的问题...

  • spring boot

    一、概念 约定优于配置:springboot基于约定优于配置,是一种软件设计规范。简单来说就是假如你所期待的配置与...

  • Maven 学习笔记

    项目约定配置 Maven 遵循约定优于配置的原则,下表是 Maven 提倡的标准目录结构: Maven 环境配置 ...

  • Spring Boot 开箱即用

    ​ Convention Over Configuration 约定优于配置,Spring Boot 其实就是...

  • Struts2之Convention

    Convention插件 作用: Cconvention意为“约定”,借鉴了Rails的“约定优于配置”原则,使用...

  • 【Spring Boot】简介

    Spring Boot的理念是约定优于配置。 约定优于配置是一种软件设计范式,很早就应用在软件架构设计中,它的作用...

网友评论

    本文标题:(XII)约定优于配置

    本文链接:https://www.haomeiwen.com/subject/hwsyyftx.html