Como posso dizer ao Maven 2 para carregar a API do Servlet 3.0?
Eu tentei:
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>3.0</version>
<scope>provided</scope>
</dependency>
Eu uso http://repository.jboss.com/maven2/ mas qual repositório estaria correto?
Termo aditivo:
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>
Prefiro adicionar apenas a API do Servlet como dependência, mas "Brabster" pode estar certo ao saber que dependências separadas foram substituídas pelo Java EE 6 Profiles. Existe uma fonte que confirme essa suposição?
java
maven-2
servlets
jakarta-ee
Deamon
fonte
fonte
servlet-api
parajavax.servlet-api
. Perdeu meia hora "depurando" ...: /Respostas:
Para ser sincero, não sei ao certo por que, mas não importa ...
O repositório maven do Java.net realmente oferece o seguinte artefato para o WebProfile:
Este jar 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, pelo que sei, nada permite dizer que essas APIs não serão distribuídas separadamente (no repositório java.net ou em outro lugar). Por exemplo (ok, pode ser um caso específico), a API JSF 2.0 está disponível separadamente (no repositório java.net):
E, na verdade, você pode ir
javax.servlet-3.0.jar
de lá e instalá-lo em seu próprio repositório.fonte
javaee-web-api
contém apenas stubs de método (sem código de bytes). Você não pode usar essa dependência fora doprovided
escopo, razão pela qual prefiro a sugestão de Sa'ad.<version>7.0</version>
Isso parece ter sido adicionado recentemente:
http://repo1.maven.org/maven2/javax/servlet/javax.servlet-api/3.0.1/
fonte
servlet-api
? Como é divertido adicionar<excludes>
o artifactId antigo (para impedir a obtenção da API do servlet antigo e do novo em seu caminho de classe, se uma de suas dependências ainda depende da antiga)? :)javax.servlet-api-3.1.0
. Apenas verifique se o contêiner do Servlet pode lidar com essa versão. Por exemplo, a versão 8 do Tomcat pode manipular 3.1 .Ou você pode usar o Repositório Central Maven com a API do Servlet 3.0, que também é fornecida para o Tomcat Server 7.0.X
daqui: http://repo2.maven.org/maven2/org/apache/tomcat/tomcat-servlet-api/7.0.21/
fonte
Aqui está o que eu uso. Todos estes estão na Central e têm fontes.
Para Tomcat 7 (Java 7, Servlet 3.0)
Nota - Servlet, JSP e APIs EL são fornecidas no Tomcat. Somente o JSTL (se usado) precisa ser empacotado com o aplicativo da web.
Para Tomcat 8 (Java 8, Servlet 3.1)
fonte
Infelizmente, adicionar o javaee- (web) -api como uma dependência não fornece o Javadoc ou o Source à API do Servlet para procurá-los no IDE. Esse também é o caso de todas as outras dependências (JPA, EJB, ...) Se você precisar das fontes da API do Servlet / javadoc, poderá adicionar o seguinte ao seu pom.xml (funciona pelo menos para o JBoss & Glassfish):
Repositório:
Dependência:
Removai completamente o javaee-api das minhas dependências e o substituí pelas partes discretas (javax.ejb, javax.faces, ...) para obter as fontes e os Javadocs de todas as partes do Java EE 6.
EDITAR:
Aqui está a dependência equivalente do Glassfish (embora ambas as dependências devam funcionar, independentemente do servidor de aplicativos que você usa).
fonte
1.0.0.Beta2
, se é a versão3.0
que precisamos? Isso torna complexo.O projeto Apache Geronimo fornece uma dependência da API do Servlet 3.0 no repositório Maven Central:
fonte
Apenas para iniciantes.
fonte
Encontrei um exemplo de POM para a API do Servlet 3.0 no DZone em setembro.
Sugira que você use o repositório java.net, em http://download.java.net/maven/2/
Existem APIs Java EE lá, por exemplo, http://download.java.net/maven/2/javax/javaee-web-api/6.0/ com POM que parecem ser o que você procura, por exemplo :
Suponho que as convenções de versão para as APIs foram alteradas para corresponder à versão da especificação geral do EE (por exemplo, Java EE 6 vs. Servlets 3.0) como parte dos novos 'perfis'. Olhando no JAR, parece que todo o material do servlet 3.0 está lá. Aproveitar!
fonte
Uma maneira conveniente (recomendada pelo JBoss) de incluir dependências do Java EE 6 é demonstrada abaixo. Como resultado, as dependências são colocadas separadamente (nem todas em um jar como em javaee-web-api), os arquivos de origem e os javadocs das bibliotecas estão disponíveis para download no repositório maven.
Para incluir apenas dependências individuais,
dependencyManagement
seção e escopoimport
podem ser usados:fonte
Experimente este código ...
fonte