Как я могу сказать Maven 2 загрузить API Servlet 3.0?
Я попытался:
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>3.0</version>
<scope>provided</scope>
</dependency>
Я использую http://repository.jboss.com/maven2/, но какой репозиторий будет правильным?
Приложение:
Он работает с зависимостью для всего API Java EE 6 и следующими настройками:
<repository>
<id>java.net</id>
<url>http://download.java.net/maven/2</url>
</repository>
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>6.0</version>
<scope>provided</scope>
</dependency>
Я бы предпочел добавить только Servlet API в качестве зависимости, но «Brabster» может быть прав, когда отдельные зависимости были заменены профилями Java EE 6. Есть ли источник, подтверждающий это предположение?
java
maven-2
servlets
jakarta-ee
Deamon
источник
источник
servlet-api
наjavax.servlet-api
. Потерял полчаса "отладки" ...: /Ответы:
Если честно, я не уверен, что понимаю почему, но не берите в голову ...
Репозиторий maven из Java.net действительно предлагает следующий артефакт для WebProfile:
Эта банка включает Servlet 3.0, EJB Lite 3.1, JPA 2.0, JSP 2.2, EL 1.2, JSTL 1.2, JSF 2.0, JTA 1.1, JSR-45, JSR-250.
Но, насколько мне известно, ничто не позволяет сказать, что эти API не будут распространяться отдельно (в репозитории java.net или где-то еще). Например (хорошо, это может быть частный случай), API JSF 2.0 доступен отдельно (в репозитории java.net):
И на самом деле, вы могли бы получить
javax.servlet-3.0.jar
от там и установить его в собственном хранилище.источник
javaee-web-api
содержит только заглушки метода (без байтового кода). Вы не можете использовать эту зависимость внеprovided
рамок, поэтому я предпочитаю предложение Саада.<version>7.0</version>
Это, кажется, добавлено недавно:
http://repo1.maven.org/maven2/javax/servlet/javax.servlet-api/3.0.1/
источник
servlet-api
? Потому что интересно добавить<excludes>
старый artifactId (чтобы предотвратить попадание старого и нового API сервлетов в ваш путь к классам, если одна из ваших зависимостей все еще зависит от старого)? :)javax.servlet-api-3.1.0
. Просто убедитесь, что ваш контейнер сервлетов может справиться с этой версией. Например, версия 8 Tomcat может обрабатывать 3.1 .Или вы можете использовать Central Maven Repository с API Servlet 3.0, который также предоставляется для Tomcat Server 7.0.X
отсюда: http://repo2.maven.org/maven2/org/apache/tomcat/tomcat-servlet-api/7.0.21/
источник
Вот что я использую. Все они в центральном и имеют источники.
Для Tomcat 7 (Java 7, Servlet 3.0)
Примечание. Servlet, JSP и EL API предоставляются в Tomcat. Только JSTL (если используется) должен быть связан с веб-приложением.
Для Tomcat 8 (Java 8, Servlet 3.1)
источник
К сожалению, добавление javaee- (web) -api в качестве зависимости не дает вам Javadoc или Source для Servlet Api, чтобы просматривать их из IDE. Это также относится ко всем другим зависимостям (JPA, EJB, ...). Если вам нужны исходные коды Servlet API / javadoc, вы можете добавить в свой файл pom.xml следующее (работает, по крайней мере, для JBoss & Glassfish):
Repository:
Зависимость:
Я полностью удалил javaee-api из своих зависимостей и заменил его на отдельные части (javax.ejb, javax.faces, ...), чтобы получить исходные коды и Javadoc для всех частей Java EE 6.
РЕДАКТИРОВАТЬ:
Вот эквивалентная зависимость Glassfish (хотя обе зависимости должны работать, независимо от того, какой сервер приложений вы используете).
источник
1.0.0.Beta2
, если это версия,3.0
которая нам нужна? Это делает это сложным.Проект Apache Geronimo обеспечивает зависимость API Servlet 3.0 от репозитория Maven Central:
источник
Просто для новичков.
источник
Я нашел пример POM для API Servlet 3.0 на DZone с сентября.
Предлагаю вам использовать репозиторий java.net, по адресу http://download.java.net/maven/2/
Там есть API Java EE, например, http://download.java.net/maven/2/javax/javaee-web-api/6.0/ с POM, которые выглядят так, как будто вы ищете, например :
Я предполагаю, что соглашения о версиях для API были изменены, чтобы соответствовать версии полной спецификации EE (то есть Java EE 6 против Servlets 3.0) как часть новых «профилей». Глядя в JAR, похоже, что там есть все сервлеты 3.0. Наслаждайтесь!
источник
Удобный способ (рекомендуется JBoss) включить зависимости Java EE 6 показан ниже. В результате зависимости помещаются отдельно (не все в один jar, как в javaee-web-api), исходные файлы и javadocs библиотек доступны для загрузки из репозитория maven.
Чтобы включить только отдельные зависимости, можно использовать
dependencyManagement
раздел и областьimport
:источник
Попробуйте этот код ...
источник