初学maven工具

maven

1.maven简介

Maven 是一个开源的项目管理和构建工具,用于帮助开发团队自动化地构建、管理和发布软件项目。它基于项目对象模型(Project Object Model,POM)概念,并通过一系列的标准化配置文件和约定来实现项目的构建、依赖管理和部署等操作。

以下是 Maven 的一些关键特点和功能:

  • 依赖管理:Maven 可以自动解析和管理项目的依赖关系。通过在项目的 POM 文件中声明依赖项,Maven 可以自动下载所需的依赖包,并确保它们在构建和运行时处于正确的状态。

  • 构建生命周期:Maven 定义了一组标准的构建阶段(Build Phase),例如编译、测试、打包、部署等,开发者可以通过执行相应的命令来触发这些构建阶段。这样可以确保项目的构建过程是一致和可重复的。

  • 多模块支持:Maven 支持将大型项目拆分为多个模块,每个模块都可以独立构建和发布。这种模块化的设计使得团队成员可以更好地合作开发,并且可以减少重复劳动和提高代码复用性。

  • 可扩展性:Maven 提供了灵活的配置选项和扩展机制,以适应不同类型的项目需求。你可以通过自定义配置文件、覆盖默认行为或使用第三方插件来扩展和定制 Maven 的功能。

总体而言,Maven 简化了项目的构建和管理过程,提供了一种标准化和可重复的方式来组织和构建软件项目。它广泛应用于 Java 和其他语言的项目中,并成为了许多开发者在项目构建和依赖管理方面的首选工具之一。

2.maven安装

maven 安装包下载https://maven.apache.org/download.cgi

初学maven工具_第1张图片
压缩包目录解释初学maven工具_第2张图片
配置maven的环境变量初学maven工具_第3张图片
初学maven工具_第4张图片
在DOS命令中测试mvn安装

D:\java\apache-maven-3.6.3>mvn -version
Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
Maven home: d:\java\apache-maven-3.6.3\bin\..
Java version: 1.8.0_251, vendor: Oracle Corporation, runtime: d:\java\jdk1.8.0_251\jre
Default locale: zh_CN, platform encoding: GBK
OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"

2.maven的配置文件

2.1.maven的配置文件有两个

  • 全局配置文件在 你所安装的maven目录的conf目录下d:\java\apache-maven-3.6.3\conf\settings.xml
  • 用户配置文件~/.m2/settings.xml,这个配置文件开始不存在,需要自己创建.m2,拷贝配置文件

ps: ideal中默认使用用户配置文件,如果你首次安装Maven并运行Maven命令时,如果你没有提供自定义的settings.xml文件,Maven将使用默认的全局配置文件。

2.2.阿里云镜像仓库

避免去中央仓库访问构件,提高访问效率
在setting.xml文件中进行更改

<mirrors>
    
    <mirror>
      <id>alimaven</id>
      <name>aliyun maven</name>
      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
      <mirrorOf>central</mirrorOf>        
    </mirror>
	
  </mirrors>

2.3.指定jdk版本

	<profile>
            <id>jdk-11</id>
            <activation>
                <activeByDefault>true</activeByDefault>
                <jdk>11</jdk>
            </activation>
            <properties>
                <maven.compiler.source>11</maven.compiler.source>
                <maven.compiler.target>11</maven.compiler.target>
                <maven.compiler.compilerVersion>11</maven.compiler.compilerVersion>
            </properties>
        </profile>
<profile>
            <id>jdk-1.8</id>
            <activation>
                <activeByDefault>true</activeByDefault>
                <jdk>1.8</jdk>
            </activation>
            <properties>
                <maven.compiler.source>1.8</maven.compiler.source>
                <maven.compiler.target>1.8</maven.compiler.target>
                <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
            </properties>
        </profile>

3.仓库

3.1.本地仓库

默认的路径

  • linux:~/.m2/repository
  • windows:c:\Users\Administrator.m2\repository\

初学maven工具_第5张图片

如图所示maven可以从本地仓库和远程仓库中找寻所需依赖,如果在本地仓库中找不到依赖就去远程仓库中下载。本地仓库在电脑是一个文件夹存着从远程仓库中下载的依赖,

3.2.远程仓库

远程仓库分为中央仓库和远程仓库

3.2.1.中央仓库

中央仓库中的jar包由专业团队(Maven团队)维护,中央仓库中存放了全世界大多数流行的开源软件的jar包,是Maven默认的远程仓库。

http://mvnrepository.com/:搜索中央仓库的中的依赖构件

3.2.2.自定义仓库

除了中央仓库外,您也可以配置自己的私有或第三方仓库。这些仓库可用于存储企业内部的构建产物、依赖项或其他第三方库。您可以在项目的 pom.xml 文件中指定自定义仓库的 URL 和认证信息。

ps:除了中央仓库和私服,还有很多其他公开的远程仓库,常见的有java.net Maven库(http://download.java.net/maven/2/)和jboss Maven库(http://repository.jboss.com/maven2/)等

4.maven项目结构初学maven工具_第6张图片

pom.xml
src/main/java
src/main/resources
src/test/java
src/test/resources
target

4.1 创建项目结构

mvn archetype:generate -DgroupId=com.example -DartifactId=my-project -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
  • 这个命令不会帮你生成main下的配置文件resources目录和test下的配置文件resources目录

  • .只会生成源文件目录主代码目录下的java源码目录和测试代码目录下的java源码目录

  • .这条命令是使用 Maven 生成项目的原型(archetype),创建一个新的 Maven 项目。我们来详细解释一下这个命令的各个参数和其作用:
    初学maven工具_第7张图片

4.1.1. mvn archetype:generate:这是 Maven 命令行工具的语法,用于执行 Maven 的生成命令。它告诉 Maven 执行生成项目的操作。

4.1.2. -DgroupId=com.example:这个参数指定了项目的 groupId,即项目的组织标识符。在 Maven 中,groupId 是项目的唯一标识符,通常是公司或组织的域名倒序写。存到本地仓库的com目录下的example中

4.1.3. -DartifactId=my-project:这个参数指定了项目的 artifactId,即项目的实际名称。在 Maven 中,artifactId 代表项目的名称,可以是任何你喜欢的名称。

4.1.4. -DarchetypeArtifactId=maven-archetype-quickstart:这个参数指定了所使用的项目原型(archetype)的 artifactId。在这种情况下,我们使用的是 Maven 快速入门原型(maven-archetype-quickstart)。它是 Maven 官方提供的用于快速创建基本 Java 项目结构的原型。

ps:项目原型是用于生成项目基础结构的模版有以下几种:

maven-archetype-quickstart maven-archetype-webapp maven-archetype-jar
这是一个基本的快速启动项目原型,适用于创建简单的 Java 项目。它包含了一个简单的 Java 类和一个基本的项目结构。 这是一个 Web 应用程序项目原型,适用于创建基于 Servlet 和 JSP 的 Web 项目。它包含了一个基本的 web.xml 文件和一个标准的 Web 项目结构。 这是一个用于创建独立 JAR 文件的项目原型。它适用于创建不依赖于 Web 容器的 Java 应用程序。

5. -DinteractiveMode=false:这个参数禁用了交互模式。如果不指定该参数,Maven 会提示用户回答一些问题,如项目的名称、版本等。在这种情况下,我们通过设置 false 来自动化项目生成过程,不需要手动回答这些问题。

5.maven常见命令

  • mvn compile:编译
    • 编译程序,在target中编译成.class
  • mvn clean:清理
    • 删除target,清理输出目录
  • mvn test:执行测试计划
    • 执行测试,注意测试失败,不能打包
  • mvn package:打包
    • 打包成jar文件,输出到target
  • mvn install :部署
    • 部署jar文件,部署到本地仓库
  • mvn deploy
    • 部署jar包,部署到远程仓库
  • mvn clean install:清理,部署
    • 先清理,然后部署
  • mvn clean install -Dmaven.test.skip=true
    • 忽略测试,直接部署

你可能感兴趣的:(java,maven,java)