Como posso dizer à Maven 2 para carregar o Servlet 3.0 API?
Eu tentei:
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>3.0</version>
<scope>provided</scope>
</dependency>
Utilizo http://repository.jboss.com/maven2/ mas que repositório estaria correcto?
Addendum:
Funciona com uma dependência para toda a API Java EE 6 e as seguintes configurações:
<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>
I'preferiria apenas adicionar o Servlet API como dependência, mas "Brabster" pode ser correcto que dependências separadas tenham sido substituídas por Java EE 6 Profiles. Existe alguma fonte que confirme esta suposição?
I' preferiria apenas adicionar o Servlet API como dependência,
Para ser honesto, I'não tenho a certeza de compreender porquê mas não importa...
Brabster dependências separadas foram substituídas por Java EE 6 Profiles. Haverá uma fonte que confirme esta suposição?
O repositório maven de Java.net oferece de facto o seguinte artefacto para o 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>
Este frasco inclui 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.
Mas que eu saiba, nada permite dizer que estas APIs ganharam't sejam distribuídas separadamente (no repositório java.net ou noutro lugar qualquer). Por exemplo (ok, pode ser um caso particular), a API JSF 2.0 está disponível separadamente (no repositório java.net):
<dependency>
<groupId>com.sun.faces</groupId>
<artifactId>jsf-api</artifactId>
<version>2.0.0-b10</version>
<scope>provided</scope>
</dependency>
E na verdade, poderia obter javax.servlet-3.0.jar
de lá e instalá-lo no seu próprio repositório.
Infelizmente, adicionar o javaee-(web)-api como dependência não'não lhe dá o Javadoc ou a Fonte ao Servlet Api para os navegar de dentro da IDE. Este é também o caso de todas as outras dependências (JPA, EJB, ...) Se precisar das fontes API do Servlet/javadoc, pode adicionar o seguinte ao seu pom.xml (funciona pelo menos para JBoss&Glassfish):
Repositório:
<repository>
<id>jboss-public-repository-group</id>
<name>JBoss Public Repository Group</name>
<url>https://repository.jboss.org/nexus/content/groups/public/</url>
</repository>
Dependência:
<!-- 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>
Removi completamente o javaee-api das minhas dependências e substituí-o pelas partes discretas (javax.ejb, javax.faces, ...) para obter as fontes e Javadocs para todas as partes de Java EE 6.
EDIT:
Aqui está a dependência equivalente do Glassfish (embora ambas as dependências devam funcionar, independentemente do servidor de aplicação que se utilize).
<dependency>
<groupId>org.glassfish</groupId>
<artifactId>javax.servlet</artifactId>
<version>3.0</version>
<scope>provided</scope>
</dependency>
Encontrei um exemplo POM para o Servlet 3.0 API on DZone a partir de Setembro.
Sugira a utilização do java.net repo, em http://download.java.net/maven/2/
Existem aí APIs Java EE, por exemplo http://download.java.net/maven/2/javax/javaee-web-api/6.0/ com POM que parecem ser o que você're procura, por exemplo:
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-web-api</artifactId>
<version>6.0</version>
</dependency>
I'm supondo que as convenções de versão para as APIs foram alteradas para corresponder à versão da especificação global EE (i.e. Java EE 6 vs. Servlets 3.0) como parte do novo 'perfis'. Olhando no JAR, parece que todo o material dos servlets 3.0 está lá. Desfrute!