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
  • 相关阅读:
    LeetCode 326. Power of Three
    LeetCode 324. Wiggle Sort II
    LeetCode 322. Coin Change
    LeetCode 321. Create Maximum Number
    LeetCode 319. Bulb Switcher
    LeetCode 318. Maximum Product of Word Lengths
    LeetCode 310. Minimum Height Trees (DFS)
    个人站点大开发!--起始篇
    LeetCode 313. Super Ugly Number
    LeetCode 309. Best Time to Buy and Sell Stock with Cooldown (DP)
  • 原文地址:https://www.cnblogs.com/SmartCat994/p/14967444.html
Copyright © 2011-2022 走看看