> Java > java지도 시간 > 본문

종속 패키지의 우선순위 설정 방법 소개

不言
풀어 주다: 2019-02-13 15:39:29
앞으로
4134명이 탐색했습니다.

이 글은 종속 패키지의 우선순위 설정 방법에 대한 소개입니다. 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.

문제 발생: XML 구문 분석 도구에 취약점 위험이 있기 때문에 WeChat 결제 백엔드에서 이전 프로젝트의 환불 기능을 비활성화했습니다.
WeChat 고객 서비스에서 제공하는 솔루션을 사용하는 것입니다. 공식 패치 .
패치 사용 후 xml-api 패키지가 jdk에 포함된 패키지와 충돌하는 것을 발견했습니다.
구체적인 이유:
xml-api 패키지의 특정 클래스는 jdk와 함께 제공되는 클래스와 동일한 정규화된 이름을 가지고 있지만 xml-api 패키지에는 관련 구현이 없습니다. #🎜🎜 # IDE jdk와 함께 제공되는 패키지에 의존하지 않고 대신 xml-api 패키지에 먼저 의존하므로 프로젝트 컴파일이 완료되지 않습니다.
해결해 보세요:

在 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 包;所以问题还是没有解决。
로그인 후 복사
추천 솔루션:
修改依赖包的优先级:

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


위 내용은 종속 패키지의 우선순위 설정 방법 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:segmentfault.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿