jstl Maven 依賴導致的 Jar 包沖突


  • 概述

  Jar 包沖突是日常開發過程中,時常會遇到的問題。本文介紹由 jstl 的 Maven 依賴導致的 Jar 包沖突問題,以及對應的解決方法。

  • jstl 的 Maven 依賴配置
        <dependency>
            <groupId>javax.servlet.jsp.jstl</groupId>
            <artifactId>jstl-api</artifactId>
            <version>1.2</version>
        </dependency>

        <dependency>
            <groupId>taglibs</groupId>
            <artifactId>standard</artifactId>
            <version>1.1.2</version>
        </dependency>

  一般來說,只要 pom 文件配置好了 Maven 依賴后,一般都不會有太大的問題。可是,就是這么一個簡單的依賴,導致了整個項目都無法啟動了,經過一段時間的排查,最終鎖定了問題所在。

  Tomcat 類庫

  

    項目編譯后的類庫

    

  從上面的2個截圖可以看出,jsp-api 和 servlet-api 這2個 Jar 包重復了,通過進一步的排查,最終確認項目編譯后的類庫多出來的2個 Jar 是由於 jstl-api Jar 包的依賴,通過 Maven 編譯到項目的類庫中的,與 Tomcat 的類庫中對應的2個 Jar 包起了沖突,找到問題的起因后,對 pom 文件做了調整,不編譯 jstl-api Jar 包的依賴的 Jar 包即可解決問題,具體調整如下:

        <dependency>
            <groupId>javax.servlet.jsp.jstl</groupId>
            <artifactId>jstl-api</artifactId>
            <version>1.2</version>
            <exclusions>
                <exclusion>
                    <groupId>javax.servlet</groupId>
                    <artifactId>servlet-api</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>javax.servlet.jsp</groupId>
                    <artifactId>jsp-api</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>taglibs</groupId>
            <artifactId>standard</artifactId>
            <version>1.1.2</version>
        </dependency>

 

 

 歡迎轉載,轉載必須標明出處 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM