zoukankan      html  css  js  c++  java
  • 关于Maven中<packaging>产生的一些问题

    关于Maven中产生的一些问题

    一、项目的打包类型

    jar

    默认的打包格式

    war

    打包成需要部署的项目

    pom

    父类型为pom类型

    二、 pom

    简单来说,一个多模块项目通过一个父POM 引用一个或多个子模块来定义。

    项目中一般使用maven进行模块管理,每个模块下对应都有一个pom文件,pom文件中维护了各模块之间的依赖和继承关系。项目模块化可以将通用的部分抽离出来,方便重用;修改一部分代码不再是build整个项目,缩短了build时间;此外各模块都有自己的pom文件,结构更清晰。

    使用maven进行模块划分管理,一般都会有一个父级项目,pom文件除了GAV(groupId, artifactId, version)是必须要配置的,另一个重要的属性就是packaging打包类型,所有的父级项目的packaging都为pom,packaging默认是jar类型,如果不作配置,maven会将该项目打成jar包。作为父级项目,还有一个重要的属性,那就是modules,通过modules标签将项目的所有子项目引用进来,在build父级项目时,会根据子模块的相互依赖关系整理一个build顺序,然后依次build。

    而对于各个子项目,需要在其对应的pom文件开头申明对父级项目的引用,通过GAV实现。对于子项目自己的GAV配置,GV如果不配置,则会从父级项目的配置继承过来。子模块可通过dependencies标签来添加自己的依赖,此外子类项目的packaging值只能是war或者jar,前面已经说过,packaging默认是jar类型。如果是需要部署的项目,则需要打包成war类型,如果只是内部调用或者是作服务使用,则推荐打包成jar类型。
    ————————————————
    版权声明:本文为CSDN博主「mayunjeffrey」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/AAzpf/article/details/79650139

    三、最后

    为什么要做此记录,主要原因是对maven整个生命周期的不熟悉,和对多模块化的项目操作生疏。

    结论是,如果项目模块多的话,一定要注意自己构建项目时的所有内容,其中包括项目名层级包名

    pom.xml文件的配置;因为像层级模块,以及包名依赖的导入依赖的作用范围这都是会引起项目无法启动的问题!!!

    无论人生上到哪一层台阶,阶下有人在仰望你,阶上亦有人在俯视你。你抬头自卑,低头自得,唯有平视,才能看见真实的自己
  • 相关阅读:
    iframe
    # ? & 号在url中的的作用
    面向对象和面向过程
    dom
    DOM对象与jquery对象有什么不同
    绑定js
    leetcode — search-for-a-range
    leetcode — search-for-a-range
    leetcode — search-in-rotated-sorted-array
    leetcode — longest-valid-parentheses
  • 原文地址:https://www.cnblogs.com/yuyueq/p/14678814.html
Copyright © 2011-2022 走看看