Зависимость знатока для Сервлета 3,0 API?

Как я могу сказать Знатоку 2 загружать Сервлет 3,0 API?

Я попробовал:


    javax.servlet
    servlet-api
    3.0
    provided

Я использую http://repository.jboss.com/maven2/, но какой репозиторий был бы корректен?

Приложение:

Это работает с зависимостью для всего Java EE 6 API и следующих настроек:


    java.net
    http://download.java.net/maven/2



    javax
    javaee-api
    6.0
    provided

Я предпочел бы только добавлять Сервлет API как зависимость, но "Brabster" может быть правильным, что отдельные зависимости были заменены Профилями Java EE 6. Существует ли источник, который подтверждает это предположение?

227
задан Betlista 26 September 2012 в 02:24
поделиться

3 ответа

Я бы предпочел добавить только сервлетный API в качестве зависимости,

Честно говоря, я не совсем понимаю, почему, но неважно...

Брабстер отдельные зависимости были заменены профилями Java EE 6. Есть ли источник, подтверждающий это предположение?

Репозиторий maven с Java.net действительно предлагает следующий артефакт для WebProfile:

<repositories>
  <repository>
    <id>java.net2</id>
    <name>Repository hosting the jee6 artifacts</name>
    <url>http://download.java.net/maven/2</url>
  </repository>
</repositories>        
<dependencies>
  <dependency>
    <groupId>javax</groupId>
    <artifactId>javaee-web-api</artifactId>
    <version>6.0</version>
    <scope>provided</scope>
  </dependency>
</dependencies>

Эта банка включает в себя 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 или где-нибудь еще). Например (хорошо, это может быть в конкретном случае), JSF 2.0 API доступен отдельно (в репозитории java.net):

<dependency>
   <groupId>com.sun.faces</groupId>
   <artifactId>jsf-api</artifactId>
   <version>2.0.0-b10</version>
   <scope>provided</scope>
</dependency>

А на самом деле, вы можете получить javax.servlet-3.0.jar из там и установить его в вашем собственном репозитории.

.
115
ответ дан 23 November 2019 в 03:48
поделиться

Я нашел пример POM для Сервлета 3.0 API на DZone с сентября.

Предлагаю использовать java.net repo, на http://download.java.net/maven/2/

Там есть Java EE API, например http://download.java. net/maven/2/javax/javaee-web-api/6.0/ с POM, которые выглядят так, как будто они могут быть тем, что вам нужно, например:

<dependency>
  <groupId>javax</groupId>
  <artifactId>javaee-web-api</artifactId>
  <version>6.0</version>
</dependency>

Я предполагаю, что соглашения о версиях для API были изменены, чтобы они соответствовали версии общей спецификации EE (т.е. Java EE 6 vs. Servlets 3.0) как часть новых "профилей". Заглядывая в JAR, кажется, что там есть все сервлеты 3.0. Наслаждайтесь!

4
ответ дан 23 November 2019 в 03:48
поделиться

К сожалению, добавление javaee-(web)-api в качестве зависимости не дает вам Javadoc или Source к Servlet Api для просмотра их из IDE. Это также относится и ко всем другим зависимостям (JPA, EJB, ...). Если вам нужны источники/javadoc API сервлетов, вы можете добавить следующее в pom.xml (работает, по крайней мере, для JBoss&Glassfish):

Repository:

<repository>
  <id>jboss-public-repository-group</id>
  <name>JBoss Public Repository Group</name>
  <url>https://repository.jboss.org/nexus/content/groups/public/</url>
</repository>

Dependency:

<!-- Servlet 3.0 Api Specification -->
<dependency>
   <groupId>org.jboss.spec.javax.servlet</groupId>
   <artifactId>jboss-servlet-api_3.0_spec</artifactId>
   <version>1.0.0.Beta2</version>
   <scope>provided</scope>
</dependency>

Я полностью удалил javaee-api из своих зависимостей и заменил его отдельными частями (javax.ejb, javax.faces, ...), чтобы получить источники и Javadoc для всех частей Java EE 6.

EDIT:

Вот эквивалентная зависимость Glassfish (хотя обе зависимости должны работать, независимо от того, какой appserver вы используете).

<dependency>
  <groupId>org.glassfish</groupId>
  <artifactId>javax.servlet</artifactId>
  <version>3.0</version>
  <scope>provided</scope>
</dependency>
24
ответ дан 23 November 2019 в 03:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: