zoukankan      html  css  js  c++  java
  • Maven回顾

      在工作的一年以来,其实一直只是把Maven当作一个工具来进行使用,并没有太多的去看过,大言不惭的说 甚至连官网都很少点进去看。依赖着各个插件进行打包部署,最近跳槽到了新的公司,在打包的时候发现了很多不一样的地方。于是回过头来看下Maven。弥补下不足之处。

      maven的官网:https://maven.apache.org/  Maven是一个软件项目管理和综合工具,基于项目对象模型的概念。这句话就是字面的意思,项目本来也就是一个对象,对象则依然会有父类子类依赖等关系。Maven运行时候需要JDK环境,则表示Maven是一个Java项目。Maven一便项目中我们用的最多的还是setting.xml,但其实还有很多配置参数信息。

      MAVEN_OPTS:用来启动Maven的JVM参数,可以设置对应的最大最小堆。

      maven.config文件:可以定义对应的通用命令来对应各个项目,例如mvn install则是在此处。  

      jvm.config文件:则是Maven运行时的JVM参数

      setting.xml会存在两个地方,一个是Maven安装目录下(全局配置),一个则是用户目录下的m2中(用户配置)。如果两个文件都存在,则它们的内容将被合并。setting.xml的官网文档:https://maven.apache.org/settings.html

      主要的还是插件,Maven平时用的多还是插件。插件的文档:https://maven.apache.org/plugins/index.html

      主要还是打包插件是怎么运行,这个可以拿一个install 插件分析下。

      这个插件其实也是具体的Java代码组成的,里面其实就是读取对应的pom文件,然后进行maven的上层业务流程进行。

      目前用的最多的插件:

      maven-archetype-plugin,用于直接生成框架的脚手架,一般都是走generator目标进行。

      maven-assembly-plugin,一般打包的时候都是直接jar包或者war包,有些可能是打包成一个dockerfile。用这个插件主要是为了可以输出一个标准的格式,在CICD的完整流程中,这个也有利部署。

    制作项目分发包,该分发包可能包含了项目的可执行文件、源代码、readme、平台脚本等等。 maven-assembly-plugin支持各种主流的格式如zip、tar.gz、jar和war等,具体打包哪些文件是高度可控的,例如用户可以 按文件级别的粒度、文件集级别的粒度、模块级别的粒度、以及依赖级别的粒度控制打包,此外,包含和排除配置也是支持的。maven-assembly- plugin要求用户使用一个名为assembly.xml的元数据文件来表述打包,它的single目标可以直接在命令行调用,也可以被绑定至生命周期。

      maven-dependency-plugin,这个可以帮助分析对应的依赖问题,常用tree和analyze命令。dependency:copy,dependency:copy-dependencies  以及dependency:unpack,dependency:unpack-dependencies偶尔也会用到。

      Maven相关文章:https://juejin.cn/post/6844904182487449614;https://juejin.cn/post/6919490393893502984

      

      

      

    smartcat.994
  • 相关阅读:
    windows8开发学习笔记
    文字超出隐藏并显示省略号
    list-style-type -- 定义列表样式
    抄录:系统集成项目管理42个子过程
    系统集成项目管理工程师--总结(4章)
    系统集成管理项目工程师总结--口诀2(包含1)
    系统集成管理项目工程师总结--法律法规日期篇1
    关于EAI(一个同学问了我很可爱的问题所以查到的这些)要看看
    系统集成项目管理工程师计划
    中级
  • 原文地址:https://www.cnblogs.com/SmartCat994/p/14967444.html
Copyright © 2011-2022 走看看