资讯专栏INFORMATION COLUMN

依赖包的优先级设置

SmallBoyO / 1886人阅读

摘要:推荐方案修改依赖包的优先级因为这个老项目是用开发,先说操作方法。修改菜单快捷键把优先级高的包放到上面,中,自带的包默认就是最高优先级,所以使用不会出现类似的问题。

问题出现:
一个老项目的退款功能被微信支付后台停用,原因是xml解析工具有漏洞风险,
    微信客服给出的解决方案是使用官方的补丁。
使用补丁后发现:xml-api包与jdk自带的包冲突。
具体原因:
    xml-api包的某个类与jdk自带的某个类具有相同的全限定名,但是xml-api包中并没有相关实现,
    IDE没有依赖jdk自带的包,而是优先依赖xml-api包,导致项目无法完成编译。
尝试解决:
在 Maven 中排除 xml-api 包:
    从父 pom 里面做排除:
        但是项目年代久远,各种类库的依赖盘根错节,
        到父 pom 里面没找到依赖,到依赖的自定义基本库里面也没找到。
        况且考虑到父 pom 被其他项目依赖的可能性,所以还是想想其他办法。
    全局排除:
        在 pom 文件里加入冲突包的依赖,然后再排除包里全部的内容:
            
                
                
                
                
                    
                        *
                        *
                    
                
            
        这个方法能够排除掉项目对 xml-api 包里的全部依赖;
            但是因为先导入后排除,项目依然会优先依赖 xml-api 包;所以问题还是没有解决。
推荐方案:
修改依赖包的优先级:

    因为这个老项目是用 Eclipse 开发,先说 Eclipse 操作方法。
    Eclipse:
        设置 build path order;
        把优先级高的包放到上面,
        所以可以把 jre 的包放到最上面。
    
    顺便看了下 IDEA 的设置,也能修改优先级。
    IDEA:
        修改 classpath order:
        菜单:File -> Project Structure -> Modules
        快捷键:Ctrl + Alt + Shift + S  -> Modules
        把优先级高的包放到上面,
        IDEA 中,jdk 自带的包默认就是最高优先级,所以使用 IDEA 不会出现类似的问题。
    

传送门:http://blog.51cto.com/1350814...
本文系笔者原创
转载请注明出处
—————————————

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/77426.html

相关文章

  • 依赖包的先级设置

    摘要:推荐方案修改依赖包的优先级因为这个老项目是用开发,先说操作方法。修改菜单快捷键把优先级高的包放到上面,中,自带的包默认就是最高优先级,所以使用不会出现类似的问题。 问题出现: 一个老项目的退款功能被微信支付后台停用,原因是xml解析工具有漏洞风险, 微信客服给出的解决方案是使用官方的补丁。 使用补丁后发现:xml-api包与jdk自带的包冲突。 具体原因: xml-ap...

    cc17 评论0 收藏0
  • [转] composer - 文档 - 命令行

    摘要:模拟命令,并没有做实际的操作。申明依赖命令增加新的依赖包到当前目录的文件中。你甚至可以输入一个软件包的版本号,来显示该版本的详细信息。你也可以在第三个参数中指定版本号,否则将获取最新的版本。 原文地址 : composer 命令行 全局参数 下列参数可与每一个命令结合使用: --verbose (-v): 增加反馈信息的详细度。 -v 表示正常输出。 -vv 表示更详细的输出。 ...

    mj 评论0 收藏0
  • npm-参考手册

    摘要:索引权限组织成员管理包访问控制用户登录注销所有者管理查看用户信息包仓储仓储查找包发布取消发布弃用我喜欢的包喜欢取消喜欢包本地初始化安装删除清除重复包标签管理更新包的版本信息运行安装链接列出包更新并安装遗漏的包检测过期打包文件清理外来包锁 索引 权限 t/team 组织成员管理 access 包访问控制 adduser/login 用户登录 logout 注销 owner 所有者管...

    chnmagnus 评论0 收藏0
  • 减小发布到npm包的体积与避免重复依赖

    摘要:我们可以把未经过打包的源代码发布到,并把中的字段指向源代码,这样引入的就交由项目的构建工具来进行处理,因此理论上就可以避免重复依赖了。总结通过这两天的折腾,主要收获有点发布包的流程中的字段判断重复依赖的机制基于组件封装组件时如何避免重复依赖 这两天一直在忙于封装一个vue table组件并发布到npm,记录一下我是如何把npm包的大小从100多kb减小到不足1kb的过程。 背景 这个组...

    xiaotianyi 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<