Maven使用指南的笔记

2024-09-08 04:36
文章标签 maven 笔记 使用指南

本文主要是介绍Maven使用指南的笔记,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  • 文档索引

  • Maven in 5 Minutes
    篇幅很短,快速上手,不求甚解。
    执行如下命令,创建项目的基础配置。

    mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeVersion=1.5 -DinteractiveMode=false
    

    对上述命令做一个简单的说明:

    • groupIdcom.mycompany.app
    • artifactIdmy-app

    上述命令执行完毕之后,在当前目录下创建目录my-app,执行命令tree -a my-app查看目录结构,如下:

    my-app/
    ├── .mvn
    │   ├── jvm.config
    │   └── maven.config
    ├── pom.xml
    └── src├── main│   └── java│       └── com│           └── mycompany│               └── app│                   └── App.java└── test└── java└── com└── mycompany└── app└── AppTest.java12 directories, 5 files
    
  • Maven Getting Started Guide
    完整的入门指导。
    常用的命令:

    • mvn clean,清理构建结果。
    • mvn compile,编译代码。
    • mvn test-compile,编译单元测试代码。
    • mvn test,编译代码和测试代码,运行单元测试代码。
    • mvn package,将项目打包。
    • mvn install,将项目的构建结果,安装到本地仓库内。

    父项目的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 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.mycompany.app</groupId><artifactId>app</artifactId><version>1.0-SNAPSHOT</version><packaging>pom</packaging><modules><module>my-app</module><module>my-webapp</module></modules>
    </project>
    

    项目的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 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.mycompany.app</groupId><artifactId>my-webapp</artifactId><version>1.0-SNAPSHOT</version><packaging>war</packaging><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.11</version><scope>test</scope></dependency></dependencies>
    </project>
    
  • Guide to naming conventions on groupId, artifactId, and version
    组件的groupIdartifactIdversion的命名规则。

  • Introduction to the Build Lifecycle

    使用Maven构建项目时,依次执行如下阶段:

    • validate
    • compile
    • test
    • package
    • verify
    • install
    • deploy
  • Introduction to the POM
    介绍pom.xml的组成,以及不同项目组合的定义方法。

  • Introduction to Build Profiles
    通过在settings.xml或者pom.xml中使用profile,可以为不同的构建场景定制构建过程和参数。
    执行如下命令,可以查看当前启用的profile。

    mvn help:active-profiles
    
  • Introduction to the Standard Directory Layout
    使用Maven来管理项目和构建时,基于约定大于配置的理念,预先定义了项目中各类文件的布局和目录命名。对于Java项目而言,默认的布局规则如下:

    • src/main/java,保存项目中的Java源码。
    • src/main/resources,保存项目中的配置文件。
    • src/main/filters,保存资源过滤器的配置文件。
    • src/main/webapp,保存Web项目的资源文件,比如html/css/js/图片比如jpeg或者png等。
    • src/test/java,保存项目中的单元测试代码。
    • src/test/resources,保存项目中单元测试代码依赖的配置文件。
    • src/test/filters,保存资源过滤器的配置文件。
    • src/assembly,保存项目构建时布局的配置文件。
    • target,保存构建的输出结果。

    其它目录不常用,因此此处不赘述。

  • Introduction to the Dependency Mechanism
    依赖管理中,相同软件的版本冲突,默认的处理规则。
    坐标中scope字段的可能取值:

    • compile,编译、运行时需要。

    • provided,编译时需要,运行时不需要。

    • runtime,编译时不需要,仅在运行时需要。

    • test,测试代码编译、测试代码运行时需要。

    • system,指定依赖本地的jar。
      样例如下:

      <dependency><groupId>javax.sql</groupId><artifactId>jdbc-stdext</artifactId><version>2.0</version><scope>system</scope><systemPath>${java.home}/lib/rt.jar</systemPath>
      </dependency>
      
    • import,导入依赖,通常在dependencyManagement中使用,比如基于SpringBoot框架开发的应用。

    排除依赖的软件。

    <dependency><groupId>group-a</groupId><artifactId>artifact-a</artifactId><version>1.0</version><exclusions><exclusion><groupId>group-c</groupId><artifactId>excluded-artifact</artifactId></exclusion></exclusions>
    </dependency>
    
  • Optional & Exclusion
    配置依赖时,可以增加属性optional,取值为true/false,样例如下:

    <dependency><groupId>sample.ProjectA</groupId><artifactId>Project-A</artifactId><version>1.0</version><scope>compile</scope><optional>true</optional> <!-- value will be true or false only -->
    </dependency>
    

    在项目中没有实际使用过。

  • Settings Reference
    settings.xml的组成,各个标签的含义。
    样例模板,和关键标签,如下:

    <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 https://maven.apache.org/xsd/settings-1.0.0.xsd"><localRepository/><interactiveMode/><offline/><pluginGroups/><servers/><mirrors/><proxies/><profiles/><activeProfiles/>
    </settings>
    

    加载顺序:

    • ${user.home}/.m2/settings.xml
      用户目录下的settings.xml
    • ${maven.home}/conf/settings.xml
      Maven软件安装目录下的settings.xml
  • POM Reference
    pom.xml的组成,各个标签的含义。

  • FAQ

这篇关于Maven使用指南的笔记的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1147132

相关文章

Python pickle模块的使用指南

《Pythonpickle模块的使用指南》Pythonpickle模块用于对象序列化与反序列化,支持dump/load方法及自定义类,需注意安全风险,建议在受控环境中使用,适用于模型持久化、缓存及跨... 目录python pickle 模块详解基本序列化与反序列化直接序列化为字节流自定义对象的序列化安全注

Maven中生命周期深度解析与实战指南

《Maven中生命周期深度解析与实战指南》这篇文章主要为大家详细介绍了Maven生命周期实战指南,包含核心概念、阶段详解、SpringBoot特化场景及企业级实践建议,希望对大家有一定的帮助... 目录一、Maven 生命周期哲学二、default生命周期核心阶段详解(高频使用)三、clean生命周期核心阶

Python学习笔记之getattr和hasattr用法示例详解

《Python学习笔记之getattr和hasattr用法示例详解》在Python中,hasattr()、getattr()和setattr()是一组内置函数,用于对对象的属性进行操作和查询,这篇文章... 目录1.getattr用法详解1.1 基本作用1.2 示例1.3 原理2.hasattr用法详解2.

Linux grep 命令的使用指南

《Linuxgrep命令的使用指南》本文给大家介绍Linuxgrep命令的使用指南,包括基础搜索语法、实践指南,感兴趣的朋友跟随小编一起看看吧... 目录linux grep 命令全面使用指南一、基础搜索语法1. 基本文本搜索2. 多文件搜索二、常用选项详解1. 输出控制选项2. 上下文控制选项三、正则表达

idea Maven Springboot多模块项目打包时90%的问题及解决方案

《ideaMavenSpringboot多模块项目打包时90%的问题及解决方案》:本文主要介绍ideaMavenSpringboot多模块项目打包时90%的问题及解决方案,具有很好的参考价值,... 目录1. 前言2. 问题3. 解决办法4. jar 包冲突总结1. 前言之所以写这篇文章是因为在使用Mav

Spring Security6.3.x的使用指南与注意事项

《SpringSecurity6.3.x的使用指南与注意事项》SpringSecurity6.3.1基于现代化架构,提供简洁配置、增强默认安全性和OAuth2.1/OIDC支持,采用Lambda... 目录介绍基础配置 (Servlet 应用 - 使用 Lambda DSL)关键配置详解(Lambda DS

Win10安装Maven与环境变量配置过程

《Win10安装Maven与环境变量配置过程》本文介绍Maven的安装与配置方法,涵盖下载、环境变量设置、本地仓库及镜像配置,指导如何在IDEA中正确配置Maven,适用于Java及其他语言项目的构建... 目录Maven 是什么?一、下载二、安装三、配置环境四、验证测试五、配置本地仓库六、配置国内镜像地址

Python操作PDF文档的主流库使用指南

《Python操作PDF文档的主流库使用指南》PDF因其跨平台、格式固定的特性成为文档交换的标准,然而,由于其复杂的内部结构,程序化操作PDF一直是个挑战,本文主要为大家整理了Python操作PD... 目录一、 基础操作1.PyPDF2 (及其继任者 pypdf)2.PyMuPDF / fitz3.Fre

Spring Boot Maven 插件如何构建可执行 JAR 的核心配置

《SpringBootMaven插件如何构建可执行JAR的核心配置》SpringBoot核心Maven插件,用于生成可执行JAR/WAR,内置服务器简化部署,支持热部署、多环境配置及依赖管理... 目录前言一、插件的核心功能与目标1.1 插件的定位1.2 插件的 Goals(目标)1.3 插件定位1.4 核

Spring Boot spring-boot-maven-plugin 参数配置详解(最新推荐)

《SpringBootspring-boot-maven-plugin参数配置详解(最新推荐)》文章介绍了SpringBootMaven插件的5个核心目标(repackage、run、start... 目录一 spring-boot-maven-plugin 插件的5个Goals二 应用场景1 重新打包应用