Zależność Maven dla API Servlet 3.0?

Jak mogę powiedzieć Maven 2, aby załadował API Servlet 3.0?

Próbowałem:

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>servlet-api</artifactId>
    <version>3.0</version>
    <scope>provided</scope>
</dependency>

Używam http://repository.jboss.com/maven2 / Ale jakie repozytorium byłoby poprawne?

Dodatek:

Działa z zależnością dla całego API Java EE 6 i następującymi ustawieniami:

<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>

Wolałbym dodać tylko API Servleta jako zależność, ale "Brabster" może mieć rację, że osobne zależności zostały zastąpione przez profile Java EE 6. Czy istnieje źródło, które potwierdza to założenie?

Author: Betlista, 2009-12-30

10 answers

Wolałbym dodać tylko API Servleta jako zależność,

Szczerze mówiąc, Nie wiem, dlaczego, ale nieważne...

Brabster oddzielne zależności zostały zastąpione przez profile Java EE 6. Czy jest jakieś źródło, które potwierdza to założenie?

Repozytorium maven z Java.net rzeczywiście oferuje następujący artefakt dla 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>

Ten jar zawiera 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.

Ale z mojej wiedzy nic nie pozwala powiedzieć, że te API nie będą rozdzielane osobno (w java.net repozytorium lub gdzie indziej). Na przykład (ok, może to być konkretny przypadek), API JSF 2.0 jest dostępne osobno (w java.net "repozytorium"): {]}

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

I faktycznie, możesz pobrać javax.servlet-3.0.jar z tam i zainstalować go we własnym repozytorium.

 110
Author: Pascal Thivent,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:34:53

To chyba Ostatnio Dodane:

Http://repo1.maven.org/maven2/javax/servlet/javax.servlet-api/3.0.1/

<dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>3.0.1</version>
        <scope>provided</scope>
</dependency>
 449
Author: Sa'ad,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-11-24 16:32:33

Lub możesz użyć Centralnego Repozytorium Maven z API Servlet 3.0, które jest również dostępne dla serwera Tomcat 7.0.X

    <dependency>
        <groupId>org.apache.tomcat</groupId>
        <artifactId>tomcat-servlet-api</artifactId>
        <version>7.0.21</version>
        <scope>provided</scope>
    </dependency>

Stąd: http://repo2.maven.org/maven2/org/apache/tomcat/tomcat-servlet-api/7.0.21/

 36
Author: cuh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-09-26 13:23:11

Niestety, dodanie javaee-(web) - api jako zależności nie daje Javadoc ani źródła do API Serwleta, aby przeglądać je z poziomu IDE. Dotyczy to również wszystkich innych zależności (JPA, EJB, ...) Jeśli potrzebujesz Servlet API sources/javadoc, możesz dodać następujące elementy do pom.xml (działa przynajmniej dla JBoss&Glassfish):

Repozytorium:

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

Zależność:

<!-- 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>

Całkowicie usunąłem javaee-api z moich zależności i zastąpiłem je z częściami dyskretnymi (jap.ejb, javax.twarze,..), aby uzyskać źródła i Javadocs dla wszystkich części Java EE 6.

EDIT:

Oto równoważna zależność Glassfish (chociaż obie zależności powinny działać, bez względu na to, jakiego serwera aplikacji używasz).

<dependency>
  <groupId>org.glassfish</groupId>
  <artifactId>javax.servlet</artifactId>
  <version>3.0</version>
  <scope>provided</scope>
</dependency>
 24
Author: ifischer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-07-14 20:43:46

Oto, czego używam. Wszystkie one znajdują się w centrum i mają źródła.

Dla Tomcat 7( Java 7, Servlet 3.0)

Uwaga-Servlet, JSP i El API są dostarczane w Tomcat. Tylko JSTL (jeśli jest używany) musi być dołączony do aplikacji internetowej.

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>3.0.1</version>
    <scope>provided</scope>
</dependency>
<dependency>
    <groupId>javax.servlet.jsp</groupId>
    <artifactId>jsp-api</artifactId>
    <version>2.2</version>
    <scope>provided</scope>
</dependency>
<dependency>
    <groupId>javax.el</groupId>
    <artifactId>javax.el-api</artifactId>
    <version>2.2.4</version>
    <scope>provided</scope>
</dependency>
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>jstl</artifactId>
    <version>1.2</version>
</dependency>

Dla Tomcat 8( Java 8, Servlet 3.1)

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>3.1.0</version>
    <scope>provided</scope>
</dependency>
<dependency>
    <groupId>javax.servlet.jsp</groupId>
    <artifactId>javax.servlet.jsp-api</artifactId>
    <version>2.3.0</version>
    <scope>provided</scope>
</dependency>
<dependency>
    <groupId>javax.el</groupId>
    <artifactId>javax.el-api</artifactId>
    <version>3.0.0</version>
    <scope>provided</scope>
</dependency>
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>jstl</artifactId>
    <version>1.2</version>
</dependency>
 19
Author: rustyx,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-01-27 09:10:22

[1]} projekt Apache Geronimo zapewnia zależność API Servlet 3.0 od centralnego repo Maven:

<dependency>
    <groupId>org.apache.geronimo.specs</groupId>
    <artifactId>geronimo-servlet_3.0_spec</artifactId>
    <version>1.0</version>
</dependency>
 9
Author: Patrick Crocker,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-09-26 13:22:55

Znalazłem przykładowy POM dla API Servlet 3.0 na DZone od września.

Zasugeruj użycie java.net repo, at http://download.java.net/maven/2/

Są tam API Java EE, na przykład http://download.java.net/maven/2/javax/javaee-web-api/6.0 / z POM, które wyglądają jakby były tym, czego szukasz, na przykład:

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

Domyślam się, że konwencje wersji dla API zostały zmienione, aby pasowały do wersji ogólnie Specyfikacja EE (tj. Java EE 6 vs. Servlets 3.0) jako część nowych "profili". Patrząc w słoik, wygląda na to, że wszystkie serwlety 3.0 są tam. Smacznego!

 4
Author: brabster,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-09-26 13:22:59

Tylko dla nowicjuszy.

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>3.1.0</version>
    <scope>provided</scope>
</dependency>
 4
Author: fraer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-01-14 14:41:46

Wygodny sposób (zalecany przez JBoss) włączenia zależności Java EE 6 przedstawiono poniżej. W rezultacie zależności są umieszczane osobno (nie wszystkie w jednym słoiku jak w javaee-web-api), pliki źródłowe i javadocs bibliotek są dostępne do pobrania z repozytorium maven.

<properties>
    <jboss.javaee6.spec.version>2.0.0.Final</jboss.javaee6.spec.version>
</properties>
<dependencies>
    <dependency>
        <groupId>org.jboss.spec</groupId>
        <artifactId>jboss-javaee-web-6.0</artifactId>
        <version>${jboss.javaee6.spec.version}</version>
        <scope>provided</scope>
        <type>pom</type>
    </dependency>
</dependencies>

Aby uwzględnić tylko poszczególne zależności, można użyć sekcji dependencyManagement i zakresu import:

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.jboss.spec</groupId>
                <artifactId>jboss-javaee6-specs-bom</artifactId>
                <version>${jboss.javaee6.spec.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
    <dependencies>
        <!-- No need specifying version and scope. It is defaulted to version and scope from Bill of Materials (bom) imported pom. -->
        <dependency>
            <groupId>org.jboss.spec.javax.servlet</groupId>
            <artifactId>jboss-servlet-api_3.0_spec</artifactId>
        </dependency>
    </dependencies>
 3
Author: Andrey,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-07-14 20:43:56

Spróbuj tego kodu...

    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>servlet-api</artifactId>
        <version>3.0-alpha-1</version>
    </dependency>
 -3
Author: Josh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-10-20 06:51:32