我是Maven的新手。我最近学到了它来解决我在Java和Spring WebApp上遇到的一些依赖问题。我一直在尝试使用一个小样本webapp。 webapp使用JSTL标记。我发现有必要将这些标签放在pom.xml中:
<dependency>
<groupId>javax.servlet.jsp.jstl</groupId>
<artifactId>jstl-api</artifactId>
<version>1.2-rev-1</version>
</dependency>
<dependency>
<groupId>org.glassfish.web</groupId>
<artifactId>jstl-impl</artifactId>
<version>1.2</version>
</dependency>
这些可以获得我需要的2个罐子:
jstl-api-1.2-rev-1.jar
jstl-impl-1.2.jar
但它在我的WEB-INF / lib中也包含了这个jar,当我尝试在Tomcat 7中运行它时,包含它会导致各种错误:
jsp-api-2.1.jar
有没有办法可以重写我的依赖标记,将jsp-api-2.1.jar从我的WEB-INF / lib中删除?
由于
固定。多谢你们。 FWIW,这就是我如何更改JSTL的依赖关系标签,而不是将JSP-API jar放在我的WEB-INF库中:
<dependency>
<groupId>javax.servlet.jsp.jstl</groupId>
<artifactId>jstl-api</artifactId>
<version>1.2-rev-1</version>
<exclusions>
<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.jsp</groupId>
<artifactId>jsp-api</artifactId>
</exclusion>
</exclusions>
</dependency>
我能够在这个站点找到groupID和artifactID https://repository.sonatype.org/index.html#welcome
答案 0 :(得分:4)
有排除部分,类似于下面的部分。
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate</artifactId>
<version>3.2.6.ga</version>
<exclusions>
<exclusion>
<groupId>javax.transaction</groupId>
<artifactId>jta</artifactId>
</exclusion>
</exclusions>
</dependency>
在您的情况下,您添加的一个(或两个)依赖项包括您不需要的依赖项。找到哪一个,并添加排除部分。
答案 1 :(得分:1)
将范围更改为“已提供”。 EG:
<dependency>
<groupId>org.glassfish.web</groupId>
<artifactId>jstl-impl</artifactId>
<version>1.2</version>
<scope>provided</scope>
</dependency>
提供的范围确保jar可供编译器使用,但假定在运行代码时将在运行时“提供”jar。在你的演员阵容中,它由Tomcat提供。