我正在尋找一種簡單的方法從Maven存儲庫中獲取JSTL 1.2實現JAR,這聽起來相當容易,但實際上證明相當困難。已聲明JSTL 1.2版,但是從Maven倉庫發佈了1.1版
我嘗試了以下軟件包:
javax.servlet : jstl : 1.2
通過http://repo1.maven.org/maven2/javax/servlet/jstl/1.2/jstl-1.2.jar
javax.servlet.jsp.jstl : jstl : 1.2
通過http://download.java.net/maven/1/javax.servlet.jsp.jstl/jars/jstl-1.2.jar
這兩個文物應包含JSTL 1.2實現。然而,當我下載JAR和打開文件/META-INF/c.tld
這些JAR的一個內(它們的內容是一樣的),頭顯示:
<taglib xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd"
version="2.1">
<description>JSTL 1.1 core library</description>
<display-name>JSTL core</display-name>
<tlib-version>1.1</tlib-version>
<short-name>c</short-name>
<uri>http://java.sun.com/jsp/jstl/core</uri>
...
這意味着該標籤是不是1.2,但1.1的標籤。爲了便於比較,我直接從http://download.java.net/maven/glassfish/org/glassfish/web/jstl-impl/1.2/jstl-impl-1.2.jar下載JAR文件的c.tld
文件看起來是正確的:
...
<description>JSTL 1.2 core library</description>
<display-name>JSTL core</display-name>
<tlib-version>1.2</tlib-version>
<short-name>c</short-name>
<uri>http://java.sun.com/jsp/jstl/core</uri>
...
所以,問題是:Maven倉庫爲什麼包含JAR文件(或者更具體地說是TLD聲明)的錯版本(1.1而不是1.2)以及如何通過Maven獲取正確的JSTL版本?