• 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文件中添加下面的引用即可,不需要声明版本号。

    
    
  • 相关阅读:
    产生一个int数组,长度为100,并向其中随机插入1-100,并且不能重复。
    it人必进的几大网站
    可写可选dropdownlist(只测试过ie)
    Datatable转换为Json 的方法
    ref 和out的区别
    数据库事务
    Webservice 的安全策略
    【转】Zookeeper解析、安装、配置
    【转】activemq的几种基本通信方式总结
    【转】Java小应用:Eclipse中建立自己的类库,给不同的工程使用
  • 原文地址:https://www.cnblogs.com/maxigang/p/9419419.html
Copyright © 2020-2023  润新知