zoukankan      html  css  js  c++  java
  • 实用maven笔记一概念&构建

    maven,作为我现在每天都会使用的工具,却发现我还有很多地方了解的迷迷糊糊。老大就曾说过我的一个问题在于,做事情不够精细。大概就是太浮于表面吧。最近突然非常想把maven撸一遍。豆瓣搜了下高分书籍,还真找到一本《Maven实战》,看完真的好多知识点拨开云雾见月明。俗话说好记性不如烂笔头,本系列文章主要从概念、构建功能、管理、仓库、多模块打包几个方面记录知识点。

    maven——既是一个异常强大的构建工具,也是一个项目依赖管理和信息管理的工具。作为构建工具,其主要功能包括清理、编译、测试、打包部署;同时maven可通过仓库自动下载和管理依赖构件。

    概念解释

    • 构件(artifact):任何一个依赖、插件或者项目构建的输出包,如war或jar

    • 构建:将项目代码通过工具编译、打包生成输出包的过程

    • 生命周期:构建目标的执行顺序,是一个良好定义的序列,在maven中是抽象概念。

    maven安装

    maven的安装方法比较简单,网上也有很多教程,这里简单描述下载linux下的安装过程:

    1. 环境要求:安装java 

    2.官网下载maven,解压 

    3.配置环境变量M2_HOME,配置环境变量path,添加bin目录

    maven包文件目录

    maven包下载解压后,可以看到解压包里有多个文件夹,各文件夹主要作用如下: 

    bin:运行脚本,包含mvn和mvnDebug,mvnDebug可以在运行Maven时开启debug调试Maven

    boot:maven的类加载器

    conf:包含settings.xml,可在机器上全局定制Maven行为;推荐使用~/.m2/settings.xml,只在用户级别定制Maven行为

    lib:包含Maven运行时需要的Java类库

    构建功能

    maven首先是一个强大的构建工具。其构建功能与其生命周期及插件息息相关。maven的生命周期为抽象概念,实际行为由插件完成。maven会在需要时下载并使用插件。

    • 生命周期

    maven有三套相互独立的生命周期:clean清理项目、default构建项目,site建立站点。每个生命周期包含一些阶段,且后面的阶段依赖于前面阶段的执行。其生命周期包含的阶段如下表所示。可单独执行某一个周期,但是选择周期中的某个phase时,该周期中该phase之前的阶段均会被执行。

    周期

    阶段(phase)

    clean

    pre-clean/clean/post-clean

    default

    validate/initialize/generate-sources/process-sources/generate-resources/process-resources/compile/process-classes/generate-test-sources/process-test-sources/generate-test-resources/process-test-resources/test-compile/process-test-classes/test/prepare-package/package/pre-integration-test/integration-test/post-integration-test/verify/install/deploy

    site

    pre-site/site/post-site/site-deploy

    • 内置绑定

    如前文所述,生命周期知识maven的抽象概念,真正的执行行为依赖于插件。maven的生命周期和插件之间存在内置绑定(若某个阶段默认未绑定任何插件,则也没任何实际行为),且由项目打包类型决定。例如jar包类型的生命周期与默认绑定:

    生命周期阶段 插件目标(goal) 功能

    clean

    maven-clean-plugin:clean

     

    site

    maven-site-plugin:site

     

    site-deploy

    maven-site-plugin:deploy

     

    process-resources

    maven-resources-plugin:resources

    复制主资源文件至主输出目录

    compile

    maven-compiler-plugin:compile

     

    process-test-resources

    maven-resources-plugin:testResources

    复制测试资源文件至测试输出目录

    test-compile

    maven-compiler-plugin:testCompile

     

    test

    maven-surefire-plugin:test

     

    package

    maven-jar-plugin:jar

     

    install

    maven-install-plugin:install

    安装到本地仓库

    deploy

    maven-deploy-plugin:deploy

    将项目的构建输出文件部署到远程仓库,需在pom配置仓库地址

    • 自定义绑定

    除了内置绑定外,也可以通过pom文件的build-plugins-plugin元素对插件进行自定义绑定,其主要配置标签和格式如下图。其中:

    1. groupId+artifactId+version定义需要绑定的插件坐标

    2. excution下的goals对应插件的目标,例如maven-surefire-plugin:test冒号后的test为一个goal

    3. phase对应声明周期中的phase,phase非必填,因为部分插件定义了默认阶段。

    4. 另外,configuration为参数配置

  • 相关阅读:
    界面布美观布局
    登陆界面验证码设置
    很好的JAVESRIPT控件
    c#导入EXCEL数据
    微软:系列课程 >Silverlight for Windows Phone 开发系列课程
    JavaScript动态网页制作宝库
    Silverlight经典教程书籍汇总
    SQL删除表中有重复的记录
    Javascript鼠标事件
    Android系统架构(转)
  • 原文地址:https://www.cnblogs.com/suntingme/p/10824728.html
Copyright © 2011-2022 走看看