zoukankan      html  css  js  c++  java
  • 构建工具 Maven 的使用

    构建一个项目所需要的流程如下:

    (1)生成源码 (2)从源码中生成文档 (3)编译源码 (4)测试 (5)将源码打包成jar,运行在服务器、仓库或者其他位置。
    Apache Maven已经实现了以上的全部功能,并且只需要相关的命令就可以完成相关的功能。


    一、Maven的下载安装
    下载maven后,解压并放到自己设置目下。

    命令:

     tar xzvf apache-maven-3.6.0-bin.tar.gz

    sudo mv apache-maven-3.6.0 /usr/local/
    Linux
    tar 命令将文件夹打包,也能将包解开成文件夹。
    选项参数
    -c:(create)建立打包文件
    -t :查看打包文件的内容含有哪些文件
    -x :解打包或解压缩的功能,可以搭配-C(大写)在特定目录解开
    -j :通过bzip2的支持进行压缩/解压缩,此时文件最好为*.tar.bz2
    -z :通过gzip的支持进行压缩/解压缩,此时文件最好为*.tar.gz
    -v :在压缩/解压缩的过程中,将正在处理的文件名显示出来
    -f filename:-f 后面跟处理后文件的全名称(路径+文件名+后缀名)
    -C 目录:这个选项用在解压缩,若要在特定目录解压缩,可以使用这个选项
    -p:保留备份数据的原本权限与属性,常用于备份(-c)重要的配置文件
    ————————————————
    二、然后配置环境变量,打开配置环境变量文件
    $ vi /etc/profile
    三、再设置环境变量
    export M2_HOME=/usr/local/apache-maven-3.6.0
    export PATH=$PATH:$M2_HOME/bin
    四、就可运行maven命令查看maven安装信息
    运行 mvn -v
    五、设置Maven的本地仓库,
    切换到maven配置文件的目录,打开maven的配置文件settings.xml。
    cd /usr/local/apache-maven3.6.0/
    vim settings.xml
    配置文件中修改本地仓库路径,配置如下:
    <localRepository>/path/to/local/repo</localRepository>
    六、添加镜像

    由于Maven 远程服务器在国外,可以添加阿里云的镜像,这样下载jar包的速度会大大增加

     <!--阿里云镜像-->

    <mirrors>
    <mirror>
    <id>alimaven</id>
    <!-- 代表了一个镜像的替代位置,例如central就表示代替官方的中央库 -->
    <name>aliyun maven</name>
    <!-- 是官方的库地址 -->
    <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
    <mirrorOf>central</mirrorOf>
    </mirror>
    </mirrors>

    我在Eclipse中新建Maven项目,但是Maven默认使用的版本是1.5的,但是我想使用1.8版本,所以需要制定版本。这里有两类方法:

    重要说明:
    此处如果指定多个mirrors镜像,镜像只会执行第一个位置mirror。

    官网说明如下:http://maven.apache.org/guides/mini/guide-mirror-settings.html

    设置多个镜像只会识别第一个镜像下载jar包。配置的多个mirror可以都放着不影响,选取一个镜像下载比较快的放在第一个就行。

    Maven的核心概念
    Maven的核心是pom文件,Maven的工作过程:

    • 首先读取pom文件
    • 下载依赖jar到本地仓库。Maven命令执行时,首先会检查pom文件的依赖jar,当检测到本地没有安装依赖jar时,会默认从Maven的中央仓库下载依赖jar,如果下载不成功,则该命令执行不会通过。
    • 执行构建的生命周期。
    • 执行构建插件

    编写pom文件
    groupId、artifactId 和 versionshi 三个标签可以在 Maven 仓库中唯一确定该依赖 jar。groupId代表了公司、组织的名称,一般为公司域名的倒写。artifactId 代表该项目的全局唯一ID,version是版本缺省默认最新发布版本。
    build为构建标签,它可以包含plugins(插件)标签
    spring-boot-maven-plugin插件,用此插件可以启动 Spring Boot 工程。
    Maven构建项目的生命周期
    Maven默认定义了构建工程的生命周期,不需要额外引入插件,默认的生命周期包括了23个阶段:

    生命周期阶段描述
    validate 检查工程配置是否正确,完成构建过程的所有必要信息是否能够获取到。
    initialize 初始化构建状态,例如设置属性。
    generate-sources 生成编译阶段需要包含的任何源码文件。
    process-sources 处理源代码,例如,过滤任何值(filter any value)。
    generate-resources 生成工程包中需要包含的资源文件。
    process-resources 拷贝和处理资源文件到目的目录中,为打包阶段做准备。
    compile 编译工程源码。
    process-classes 处理编译生成的文件,例如 Java Class 字节码的加强和优化。
    generate-test-sources 生成编译阶段需要包含的任何测试源代码。
    process-test-sources 处理测试源代码,例如,过滤任何值(filter any values)。
    test-compile 编译测试源代码到测试目的目录。
    process-test-classes 处理测试代码文件编译后生成的文件。
    test 使用适当的单元测试框架(例如JUnit)运行测试。
    prepare-package 在真正打包之前,为准备打包执行任何必要的操作。
    package 获取编译后的代码,并按照可发布的格式进行打包,例如 JAR、WAR 或者 EAR 文件。
    pre-integration-test 在集成测试执行之前,执行所需的操作。例如,设置所需的环境变量。
    integration-test 处理和部署必须的工程包到集成测试能够运行的环境中。
    post-integration-test 在集成测试被执行后执行必要的操作。例如,清理环境。
    verify 运行检查操作来验证工程包是有效的,并满足质量要求。
    install 安装工程包到本地仓库中,该仓库可以作为本地其他工程的依赖。
    deploy 拷贝最终的工程包到远程仓库中,以共享给其他开发人员和工程。

    常用的Maven命令:

    mvn clean 删除工程的target目录下的所有文件
    mvn package 将工程打为 jar 包。
    mvn package 并不是一个简单的命令,它是由一系列有序的命令构成的,mvn package命令执行过程包含以下6个阶段。
    验证
    编译代码
    处理代码
    生成资源文件
    生成 jar 包。
    测试
    mvn package -Dmaven.test.skip=true,打包时跳过测试
    mvn compile 编译工程代码,不生成 jar 包。
    mvn install 命令包含了mvn package 的所有工程,并且将生成的jar包安装到本地仓库。
    mvn spring-boot:run 使用spring-boot 插件,启动Spring Boot 工程。该命令执行时先检查Spring boot工程源码是否编译,如未编译则先编译。
    mvn test 测试
    mvn idea:idea 生成idea项目
    mvn jar:jar 只打jar包。
    mvn validate 检验资源是否可用。


    参考原文链接:https://blog.csdn.net/www1056481167/article/details/60139851

    https://www.cnblogs.com/c1024/p/11011995.html

    源码,是痛苦的,又是快乐的,如果没有这痛苦,也就没有了这快乐!
  • 相关阅读:
    .Net转Java自学之路—SpringMVC框架篇九(拦截器)
    .Net转Java自学之路—SpringMVC框架篇八(RESTful支持)
    移动端高清适配、布局开发解决方案
    Webpack+Gulp+React+ES6开发
    gulp使用gulp-file-include将header/footer引入页面
    git在window与linux的换行符问题
    文件(图片)上传组件
    ie8、9跨域上传文件(图片)
    移动端rem布局背景图片使用以及sprite雪碧图
    iOS/Android 浏览器(h5)及微信中唤起本地APP
  • 原文地址:https://www.cnblogs.com/erlongxizhu-03/p/12114311.html
Copyright © 2011-2022 走看看