Версия 1.2 JSTL объявлена, но 1.1 доставлена ​​из репозитория Maven - PullRequest
2 голосов
/ 30 июня 2011

Я ищу простой способ получить JAR-файл реализации JSTL 1.2 из репозитория Maven, который звучит довольно просто, но на самом деле оказывается довольно сложным.

Я пробовал следующие пакеты:

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. Для сравнения, когда я загружаю файл JAR непосредственно из http://download.java.net/maven/glassfish/org/glassfish/web/jstl-impl/1.2/jstl-impl-1.2.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) и как я могу получить правильную версию JSTL через Maven?

Ответы [ 2 ]

2 голосов
/ 30 июня 2011
  1. Сообщить о проблеме на https://issues.sonatype.org/browse/MVNCENTRAL

  2. В качестве кратковременного исправления замените файл JAR в локальном репо .m2 на правильный JAR из java.net.

    Если вы используете прокси, замените его и там.

1 голос
/ 30 июня 2011

Вы можете переопределить его локально, выполнив следующие действия:

  1. В каталоге .m2 * скопируйте и вставьте новую копию папки 1.1.
  2. Переименуйте копию в1.2
  3. Скопируйте настоящий jar-файл 1.2 в эту папку.
  4. Обновите POM и другие текстовые файлы, чтобы отразить тот факт, что это 1.2

* $ HOME/.m2 на всех платформах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...