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     
     
  • 相关阅读:
    Java核心技术 卷一 笔记四 库类的直接使用
    Java核心技术 卷一 笔记三 大数值及数组
    Java核心技术 卷一 笔记2 字符串的复制
    Java核心技术 卷一 笔记1
    修改css 样式后, hover事件 不生效
    修改 element ui input 输入框 样式不生效问题
    css3 计算属性
    Vue3 改动系列
    浏览器实现,向下滑动 鼠标滚轮,页面横向移动
    linux ceont0s7 vue 打包压缩图片 一直报错
  • 原文地址:https://www.cnblogs.com/robbychan/p/3786795.html
Copyright © 2011-2022 走看看