zoukankan      html  css  js  c++  java
  • maven ZZ学习笔记,讲解的很好

    每家公司都具有自己的仓库
    parent pom
     * 编译检查--检查重复类,重复包
     * 公共依赖  : 每个项目每个人都依赖公司的
     * 必须引用  : 每个项目都引用公司的 parent pom
     (1), 重复包
     Guava 也要依赖第三方,比如guava 15的版本依赖 A 包1.0,然后你自己的项目也间接依赖 A包1.1.此时编译成 war包的时候,你运行期??
     answ : classload 不固定,要看 classload 的加载顺序。运行期,其实有可能出问题,...
     解决方案是 : 将依赖树列出来,有重复的就不让过。


     我们给别人发布jar包的时候,是不能有配置文件的。原因 : 比如你的jar包中有个 配置文件 XXX.xml, 然后用户也有可能有这个 XXX.xml 名字的。
     (2), 重复类
       你将别人(如:guava.jar)包中的 类 用到了,加入到了你自己的jar文件中,你用guava.jar具有这个类
    pom
      gid : 相当于你的
      aid : 
      version :
      scope : 没写默认是compile,-- runtime, compile, provided, test  代表不会 download 到本地。 
       answ : 面向接口编程,编码的时候只需要依赖 API 的包,等 runtime 的时候,实现就加载进来。 
        jdbc 编译的时候,没问题。你是面向接口编程。
        
        API <---- JDBC.jar  接口
                Mysql-Connect.jar 实现
                PG-connect.jar    实现
           runtime 
           compile
           provide 
           test 只能在 test 中引用这个包中的类,在其他目录中是引用不到的。
      servlet-api.jar 与 jdbc 那个例子很像,但是不是 runtime
      tomcat7 实现 servlet3.0
      tomcat6 不能完全支持 servlet3.0, provide 的意思是依赖容易给予提供的包 
      
      抽象出 parent-pom 第一是做管理,第二是做节省大家的重复度
      
      每一个leader都要检查你的 pom.xml 是否符合规范
      
      parent.pom 是 guava 13.0.1, 你想引用 15.0, 那么就类似要 overvide
      
    * dependencies 是你项目真正的依赖
    * properties 是常量
     mvn package -p     
     
  • 相关阅读:
    Netty ByteBuf(图解之 2)| 秒懂
    【转】 RGB各种格式
    缺少动态库报错
    bug:进程可调用函数而子线程调用报错
    【转】 pthread设置线程的调度策略和优先级
    【转】 C++析构函数的作用和用法
    【转】 g++编译时对'xxxx'未定义的引用问题(undefined reference to)
    【转】 C语言文件操作详解
    【转】 H.264编码原理以及I帧B帧P帧
    【转】 strrchr()函数---C语言
  • 原文地址:https://www.cnblogs.com/robbychan/p/3786795.html
Copyright © 2011-2022 走看看