Maison >Java >javaDidacticiel >Introduction à la méthode de définition de la priorité des packages dépendants
Ce que cet article vous apporte est une introduction à la méthode de définition de la priorité des packages dépendants. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. J'espère qu'il vous sera utile.
Un problème survient : la fonction de remboursement d'un ancien projet a été désactivée par le backend de paiement WeChat car l'outil d'analyse XML présente un risque de vulnérabilité
La solution proposée par le service client WeChat est d'utiliser le patch officiel. .
Après avoir utilisé le correctif, j'ai découvert que le package xml-api était en conflit avec le package fourni avec jdk.
Raisons spécifiques :
Une certaine classe du package xml-api a le même nom complet qu'une classe fournie avec jdk, mais il n'y a pas d'implémentation pertinente dans le package xml-api
L'IDE. ne dépend pas de jdk Le package intégré s'appuie d'abord sur le package xml-api, ce qui empêche le projet de terminer la compilation.
在 Maven 中排除 xml-api 包: 从父 pom 里面做排除: 但是项目年代久远,各种类库的依赖盘根错节, 到父 pom 里面没找到依赖,到依赖的自定义基本库里面也没找到。 况且考虑到父 pom 被其他项目依赖的可能性,所以还是想想其他办法。 全局排除: 在 pom 文件里加入冲突包的依赖,然后再排除包里全部的内容: <dependency> <groupId></groupId> <artifactId></artifactId> <version></version> <exclusions> <exclusion> <groupId>*</groupId> <artifactId>*</artifactId> </exclusion> </exclusions> </dependency> 这个方法能够排除掉项目对 xml-api 包里的全部依赖; 但是因为先导入后排除,项目依然会优先依赖 xml-api 包;所以问题还是没有解决。Solution recommandée :
修改依赖包的优先级: 因为这个老项目是用 Eclipse 开发,先说 Eclipse 操作方法。 Eclipse: 设置 build path order; 把优先级高的包放到上面, 所以可以把 jre 的包放到最上面。 顺便看了下 IDEA 的设置,也能修改优先级。 IDEA: 修改 classpath order: 菜单:File -> Project Structure -> Modules 快捷键:Ctrl + Alt + Shift + S -> Modules 把优先级高的包放到上面, IDEA 中,jdk 自带的包默认就是最高优先级,所以使用 IDEA 不会出现类似的问题。
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!