• Maven实战读书笔记(一):Maven概述


    1.1 Maven是什么,能做什么

    Maven是一个跨平台的项目管理工具,主要服务于Java平台的项目构建、依赖管理和项目信息管理。

    Maven的用途之一是项目构建,能够自动化构建过程,从清理、编译、测试到生成报告,再到打包和部署,只需要输入简单命令即可(如mvn clean install)。

    Maven不仅是构建工具,还是依赖管理工具和项目信息管理工具,通过提供中央仓库,自动帮我们下载构件(artifact)。

    Remark:Maven依赖于JDK,安装Maven之前需要先安装JDKMaven可以运行在JDK1.4及以上版本。

    1.2 POM文件

    Maven项目的核心是pom.xml,POM(Project Object Model)项目对象模型,定义项目基本信息,描述项目如何构建,声明项目依赖等。

    简单的pom.xml如下:

    <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</modelVersion>
    
       <groupId>com.wangdh.maven</groupId>
    
       <artifactId>maven-demo</artifactId>
    
       <version>1.0.0-SNAPSHOT</version>
    
       <packaging>jar</packaging>
    
    </project>
    

    project是所有pom.xml的根目录;

    modelVersion指定当前POM模型的版本,对Maven 2Maven 3而言,该值只能是4.0.0。

    groupId、artifactId、version定义了一个项目的基本坐标。

    packaging可以为jar(默认)、pomwar,是基于基本坐标进行区分的。

    1.3 约定大于配置

    Maven中,使用了约定大于配置的原则,可以大量减少配置。默认的约定有:

    1. 源码路径 src/main/java

    2. 编译输出目录 target/classes

    3. 打包方式 jar

    4. 包输出目录 target

    5. 在项目的根目录放置pom.xml

    Maven中,约定的项是能够通过配置项修改的,约定的项也是配置在超级POM中,可以在当前的POM文件,通过修改对应配置进行覆盖。

    1.4 Archetype生成项目骨架

    基于约定大于配置的思想,Maven可以使用Archetype快速的生成项目骨架,在Maven 3 中,简单运行:mvn archetype:generate

    Archetype可以简单理解成项目模块。Archetype不是Maven的核心特性,主要是通过maven-archetype-plugin插件来实现的。

    常用的Archetype有:

    maven-archetype-quickstart

    maven-archetype-webapp

    1.5 最佳实践

    groupId定义项目的组,一般为公司的反向域名+项目的名称,如:com.xxx.myApp

    artifactId定义了当前项目在组中的唯一id,一般以项目名称为前缀,如:myApp-base

    一个公司会有很多项目,一个项目会有很多模块,所以groupId定义到到项目层次,artifactId定义到模块层次,当只有一个模块时,artifactId可以是项目名称。

    1.6 Maven安装最佳实践

    1. 设置MAVEN_OPTS环境变量

    mvn命令实际是执行了Java命令,因此Java命令可用的参数在运行mvn时也可用。Java默认的最大可用内存往往不能够满足Maven运行的需求,一般将MAVEN_OPTS的值设置为-Xms128m –Xmx512m,并且设置到环境变量,而不建议修改mvn.batmvn,升级的时候会被覆盖,需要重新配置,麻烦并且容易忘记。

    1. 配置用户范围的settings.xml

    Maven有两个配置文件${m2_HOME}/conf/settings.xml${user}/.m2/settings.xml前者是全局范围的,整台机器上所有用户都会受该配置影响,而后者是用户范围的,只会影响当前用户。

    推荐配置用户范围的配置,可以避免无意识影响其他用户,也可以避免Maven升级时,配置被覆盖。

    1. 不要使用IDE内嵌的Maven

    内嵌的Maven版本通常会比较新,但不一定稳定,而且往往与命令行使用的Maven不是同个版本,因此由于不稳定,可能会出现一些难以理解的问题,其次版本不一致可能导致构建行为不一致。

  • 相关阅读:
    linux 第五天
    linux 第四天
    二进制 位运算
    二进制
    java 方法的调用过程
    Linux 第三天
    Linux 第二天
    Linux
    学习了半个多月的TankGame
    学习第一天(spring)
  • 原文地址:https://www.cnblogs.com/Jxwz/p/8372364.html
Copyright © 2020-2023  润新知