zoukankan      html  css  js  c++  java
  • maven

    最常用的一个使用场景是:一个父工程下面好几个子module,module之前可能会有引用关系,那么要想被引用的module在发起引用的module中被识别,需要在子module执行下面的步骤:

    • mvn clean:将之前编译好的字节码清空;
    • mvn compile:重新编译子模块的源码;
    • mvn package:将子模块打包(jar或者war);
    • mvn install:将上一步中打好的包放入本地仓库中,以便其他模块识别并引用。

    需要注意的是打包的方式有三种,分别为:jar、war、pom。这三者的区别自然不用说,但是需要注意的是pom文件除了GAV(groupId, artifactId, version)是必须要配置的,另一个重要的属性就是packaging打包类型,所有的父级项目的packaging都为pom,packaging默认是jar类型,如果不作配置,maven会将该项目打成jar包。作为父级项目,还有一个重要的属性,那就是modules,通过modules标签将项目的所有子项目引用进来,在build父级项目时,会根据子模块的相互依赖关系整理一个build顺序,然后依次build。此外子类项目的packaging值只能是war或者jar,前面已经说过,packaging默认是jar类型。如果是需要部署的项目,则需要打包成war类型,如果只是内部调用或者是作服务使用,则推荐打包成jar类型。

    而对于各个子项目,需要在其对应的pom文件开头申明对父级项目的引用,通过GAV实现。对于子项目自己的GAV配置,GV如果不配置,则会从父级项目的配置继承过来。子模块可通过dependencies标签来添加自己的依赖。如果一个需要继承父工程中引用的jar,那么需要在父工程中将这些需要继承给子module的依赖放在dependencyManagement中,在子module的pom文件中业务要声明相应的依赖,但是不需要声明版本号。

    如下面的例子:

    在父工程中的pom文件中声明了javax.servlet-api的引用,并且是在dependencyManagement标签中声明的,所以这个依赖可以由子模块继承,在module的pom文件中添加下面的引用即可,不需要声明版本号。

    
    
  • 相关阅读:
    蒙特卡洛采样、重要性采样
    伯努利分布和高斯分布下的最大似然估计、交叉熵
    对于分类问题的神经网络最后一层的函数:sigmoid、softmax与损失函数
    android 侧滑菜单
    安卓Animation类与xml制作动画
    LeetCode题解 #3 Longest Substring Without Repeating Characters
    GY89的使用
    使用GY89的BMP180模块获取温度和压强(海拔)
    STM32与PC机串口通讯
    STM32使用无源蜂鸣器演奏歌曲
  • 原文地址:https://www.cnblogs.com/maxigang/p/9419419.html
Copyright © 2011-2022 走看看