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

相关文章

解决Maven项目idea找不到本地仓库jar包问题以及使用mvn install:install-file

《解决Maven项目idea找不到本地仓库jar包问题以及使用mvninstall:install-file》:本文主要介绍解决Maven项目idea找不到本地仓库jar包问题以及使用mvnin... 目录Maven项目idea找不到本地仓库jar包以及使用mvn install:install-file基

Maven如何手动安装依赖到本地仓库

《Maven如何手动安装依赖到本地仓库》:本文主要介绍Maven如何手动安装依赖到本地仓库问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、下载依赖二、安装 JAR 文件到本地仓库三、验证安装四、在项目中使用该依赖1、注意事项2、额外提示总结一、下载依赖登

Maven的使用和配置国内源的保姆级教程

《Maven的使用和配置国内源的保姆级教程》Maven是⼀个项目管理工具,基于POM(ProjectObjectModel,项目对象模型)的概念,Maven可以通过一小段描述信息来管理项目的构建,报告... 目录1. 什么是Maven?2.创建⼀个Maven项目3.Maven 核心功能4.使用Maven H

利用Python快速搭建Markdown笔记发布系统

《利用Python快速搭建Markdown笔记发布系统》这篇文章主要为大家详细介绍了使用Python生态的成熟工具,在30分钟内搭建一个支持Markdown渲染、分类标签、全文搜索的私有化知识发布系统... 目录引言:为什么要自建知识博客一、技术选型:极简主义开发栈二、系统架构设计三、核心代码实现(分步解析

idea maven编译报错Java heap space的解决方法

《ideamaven编译报错Javaheapspace的解决方法》这篇文章主要为大家详细介绍了ideamaven编译报错Javaheapspace的相关解决方法,文中的示例代码讲解详细,感兴趣的... 目录1.增加 Maven 编译的堆内存2. 增加 IntelliJ IDEA 的堆内存3. 优化 Mave

Python Websockets库的使用指南

《PythonWebsockets库的使用指南》pythonwebsockets库是一个用于创建WebSocket服务器和客户端的Python库,它提供了一种简单的方式来实现实时通信,支持异步和同步... 目录一、WebSocket 简介二、python 的 websockets 库安装三、完整代码示例1.

Kotlin 作用域函数apply、let、run、with、also使用指南

《Kotlin作用域函数apply、let、run、with、also使用指南》在Kotlin开发中,作用域函数(ScopeFunctions)是一组能让代码更简洁、更函数式的高阶函数,本文将... 目录一、引言:为什么需要作用域函数?二、作用域函China编程数详解1. apply:对象配置的 “流式构建器”最

一文教你如何将maven项目转成web项目

《一文教你如何将maven项目转成web项目》在软件开发过程中,有时我们需要将一个普通的Maven项目转换为Web项目,以便能够部署到Web容器中运行,本文将详细介绍如何通过简单的步骤完成这一转换过程... 目录准备工作步骤一:修改​​pom.XML​​1.1 添加​​packaging​​标签1.2 添加

Maven pom.xml文件中build,plugin标签的使用小结

《Mavenpom.xml文件中build,plugin标签的使用小结》本文主要介绍了Mavenpom.xml文件中build,plugin标签的使用小结,文中通过示例代码介绍的非常详细,对大家的学... 目录<build> 标签Plugins插件<build> 标签<build> 标签是 pom.XML

2025最新版Python3.13.1安装使用指南(超详细)

《2025最新版Python3.13.1安装使用指南(超详细)》Python编程语言自诞生以来,已经成为全球最受欢迎的编程语言之一,它简单易学易用,以标准库和功能强大且广泛外挂的扩展库,为用户提供包罗... 目录2025最新版python 3.13.1安装使用指南1. 2025年Python语言最新排名2.