maven 入门

    xiaoxiao2022-07-07  174

    目录

    1.maven 的基本概念

    2.maven 生命周期

    3.项目中maven 的pom 文件

    4.maven 的配置文件setting.xml


    1.maven 的基本概念

    maven 可以理解为一个项目管理工具。

    2.maven 生命周期

    maven 有三个内置的生命周期:默认default,清洁clean,站点site

    这三个内置的生命周期,每一个都是阶段组成的。

    清洁(clean)生命周期

    预清洁(pre-clean)执行实际项目清理之前所需的流程清洁(clean)删除以前构建生成的所有文件后清洁(post-clean)执行完成项目清理所需的流程

    默认(default)生命周期

    验证(validate)验证项目是正确的,所有必要的信息可用。初始化(initialize)初始化构建状态,例如设置属性或创建目录。产生来源(generate-sources)生成包含在编译中的任何源代码。流程源(process-sources)处理源代码,例如过滤任何值。生成资源(generate-resources)生成包含在包中的资源。流程资源(process-resources)将资源复制并处理到目标目录中,准备打包。编译(compile)编译项目的源代码。工艺类(process-classes)从编译后处理生成的文件,例如对Java类进行字节码增强。生成测试来源(generate-test-sources)生成包含在编译中的任何测试源代码。流程测试来源(process-test-sources)处理测试源代码,例如过滤任何值。生成测试资源(generate-test-resources)创建测试资源。流程测试资源(process-test-resources)将资源复制并处理到测试目标目录中。测试编译(test-compile)将测试源代码编译到测试目标目录中流程检验类(process-test-classes)从测试编译中处理生成的文件,例如对Java类进行字节码增强。对于Maven 2.0.5及以上版本。测试(test)使用合适的单元测试框架运行测试。这些测试不应该要求代码被打包或部署。制备包(prepare-package)在实际包装之前,执行必要的准备包装的操作。这通常会导致打包的处理版本的包。(Maven 2.1及以上)打包(package)采取编译的代码,并以其可分发的格式(如JAR)进行打包。预集成测试(pre-integration-test)在执行集成测试之前执行所需的操作。这可能涉及诸如设置所需环境等。集成测试(integration-test)如果需要,可以将该包过程并部署到可以运行集成测试的环境中。整合后的测试(post-integration-test)执行集成测试后执行所需的操作。这可能包括清理环境。校验(verify)运行任何检查以验证包装是否有效并符合质量标准。安装(install)将软件包安装到本地存储库中,以作为本地其他项目的依赖关系。部署(deploy)在集成或发布环境中完成,将最终软件包复制到远程存储库,以与其他开发人员和项目共享。

    站点(site)生命周期

    预网站(pre-site)在实际的项目现场生成之前执行所需的进程网站(site)生成项目的站点文档后网站(post-site)执行完成站点生成所需的进程,并准备站点部署网站部署(site-deploy)将生成的站点文档部署到指定的Web服务器

     

    需要注意的是:

    a.在我们开发阶段,有一些生命周期的阶段,比如验证(validate)这些,基本很少用到。只要使用关键的几个基本能满足需求。

     

     

     

    3.项目中maven 的pom 文件

    这是刚刚创建的一个maven 项目生成的pom.xml

    <?xml version="1.0" encoding="UTF-8"?> <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.damai</groupId> <artifactId>maven</artifactId> <version>1.0-SNAPSHOT</version> <name>maven</name> <!-- FIXME change it to the project's website --> <url>http://www.example.com</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.source>1.7</maven.compiler.source> <maven.compiler.target>1.7</maven.compiler.target> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <scope>test</scope> </dependency> </dependencies> <build> <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) --> <plugins> <!-- clean lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#clean_Lifecycle --> <plugin> <artifactId>maven-clean-plugin</artifactId> <version>3.1.0</version> </plugin> <!-- default lifecycle, jar packaging: see https://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_jar_packaging --> <plugin> <artifactId>maven-resources-plugin</artifactId> <version>3.0.2</version> </plugin> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.0</version> </plugin> <plugin> <artifactId>maven-surefire-plugin</artifactId> <version>2.22.1</version> </plugin> <plugin> <artifactId>maven-jar-plugin</artifactId> <version>3.0.2</version> </plugin> <plugin> <artifactId>maven-install-plugin</artifactId> <version>2.5.2</version> </plugin> <plugin> <artifactId>maven-deploy-plugin</artifactId> <version>2.8.2</version> </plugin> <!-- site lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#site_Lifecycle --> <plugin> <artifactId>maven-site-plugin</artifactId> <version>3.7.1</version> </plugin> <plugin> <artifactId>maven-project-info-reports-plugin</artifactId> <version>3.0.0</version> </plugin> </plugins> </pluginManagement> </build> </project>

    对里面的部分概念进行讲解

    modelVersion:

    指定了当前Maven模型的版本号,对于Maven2和Maven3来说,它只能是4.0.0

    version:

    SNAPHOT 快照机制,这个可以参考我的另一篇文章SNAPHOT快照机制

    packing:

    项目打包的类型,可以是 jar、war、rar、ear、pom,默认是jar

    dependencies和dependency

    dependency 就是依赖。因为maven项目中一个项目可能会依赖其他的jar包,可以通过dependency 表示这种依赖关系。

    4.maven 的配置文件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>

    这个镜像里面的mirrorOf 的值central 表示这是一个中央仓库的镜像

    最新回复(0)