你的位置:首页 > Java教程

[Java教程]正确配置jstl的maven依赖,jar包冲突的问题终于解决啦


困扰了两天的问题,非常头疼,今天终于有了解决思路了,说到底,还是对maven不够了解吧。总是抱怨maven不好用,出现各种无厘头的问题,原来这些都是归于对它不够了解不够熟悉,它提供了很好的解决思路,只是我们通常都不知道。

问题背景:
配置jstl依赖惹的祸,

<dependency>
  <groupId>javax.servlet.jsp.jstl</groupId>
  <artifactId>jstl-api</artifactId>
  <version>1.2</version>
</dependency>
<dependency>
  <groupId>org.glassfish.web</groupId>
  <artifactId>jstl-impl</artifactId>
  <version>1.2</version>
</dependency>

请看这个依赖,没错,它是把jstl的jar包给你完完整整地下下来了,可是竟然附带把jstl依赖的jar包像servlet-api.jar、jsp-api.jar一并下下来了!!!那么问题来了,对,你的项目里面大多数也需要用这两jar包,需要这两jar包,但是你知道接下来恐怖的是什么吗?我不知道大家用的中间件版本的兼容性咋样,反正我的tomcat里面的这两包就是与我项目里通过maven下下来的包冲突!!!
真是够了,删除tomcat里的那两包好像还是不起作用。下面看看好使靠谱的解决办法:
来自 分享:http://www.javacoder.cn/?p=195
      

    <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>org.glassfish.web</groupId>
        <artifactId>jstl-impl</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>
           <exclusion>
              <groupId>javax.servlet.jsp.jstl</groupId>
              <artifactId>jstl-api</artifactId>
           </exclusion>
        </exclusions>
    </dependency>

亲爱的们,你是不是也遇到了和我一样的苦恼呢?赶紧试试吧,如果能帮助到你,我也是很开心的!!!