Heim > Java > javaLernprogramm > Hauptteil

Einführung in die Methode zum Festlegen der Priorität abhängiger Pakete

不言
Freigeben: 2019-02-13 15:39:29
nach vorne
4134 Leute haben es durchsucht

Dieser Artikel bietet Ihnen eine Einführung in die Methode zum Festlegen der Priorität von abhängigen Paketen. Ich hoffe, dass er für Freunde in Not hilfreich ist.

Es tritt ein Problem auf: Die Rückerstattungsfunktion eines alten Projekts wurde vom WeChat-Zahlungs-Backend deaktiviert, da das XML-Parsing-Tool ein Schwachstellenrisiko aufweist.
Die vom WeChat-Kundendienst bereitgestellte Lösung besteht darin, den offiziellen Patch zu verwenden .
Nachdem ich den Patch verwendet hatte, stellte ich fest, dass das XML-API-Paket mit dem Paket, das mit JDK geliefert wird, in Konflikt steht.
Spezifische Gründe:
Eine bestimmte Klasse im XML-API-Paket hat denselben vollständig qualifizierten Namen wie eine Klasse, die mit JDK geliefert wird, aber es gibt keine relevante Implementierung im XML-API-Paket
Die IDE hängt nicht von jdk ab. Das integrierte Paket verlässt sich stattdessen zuerst auf das xml-api-Paket, was dazu führt, dass das Projekt die Kompilierung nicht abschließen kann.

Versuchen Sie zu lösen:
在 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 包;所以问题还是没有解决。
Nach dem Login kopieren
Empfohlene Lösung:
修改依赖包的优先级:

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


Das obige ist der detaillierte Inhalt vonEinführung in die Methode zum Festlegen der Priorität abhängiger Pakete. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:segmentfault.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage