Я использую Gradle 1.9 (подробности ниже), чтобы построить WAR, который будет работать над Jetty 9 (jetty-9.0.5.v20130815).Gradle создает войну с servlet-api 2.5 вместо 3.0.1
Он настраивается в web.xml
-
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:c="http://java.sun.com/jsp/jstl/core"
xmlns:fmt="http://java.sun.com/jsp/jstl/fmt"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
...
build.gradle имеет эту зависимость -
repositories {
mavenCentral()
}
dependencies {
providedCompile 'javax.servlet:javax.servlet-api:3.0.1'
compile 'org.springframework:spring-webmvc:3.2.2.RELEASE'
compile 'javax.mail:mail:1.4.7'
compile 'org.codehaus.jackson:jackson-mapper-asl:1.9.13'
compile 'org.apache.directory.studio:org.apache.commons.io:2.4'
compile 'commons-net:commons-net:3.3'
compile 'mysql:mysql-connector-java:5.1.26'
compile 'org.springframework:spring-jdbc:3.2.4.RELEASE'
compile 'commons-fileupload:commons-fileupload:1.3'
compile 'commons-pool:commons-pool:1.6'
compile 'commons-dbcp:commons-dbcp:1.4'
compile 'log4j:log4j:1.2.17'
compile 'org.slf4j:slf4j-api:1.7.5'
compile 'org.slf4j:slf4j-log4j12:1.7.5'
runtime 'javax.servlet:jstl:1.1.2'
}
здание с использованием gradle clean war
производит WAR файл с servlet-api-2.5.jar
в WEB-INF/lib/
.
Подробнее Env -
Build time: 2013-11-19 08:20:02 UTC
Build number: none
Revision: 7970ec3503b4f5767ee1c1c69f8b4186c4763e3d
Groovy: 1.8.6
Ant: Apache Ant(TM) version 1.9.2 compiled on July 8 2013
Ivy: 2.2.0
JVM: 1.7.0_45 (Oracle Corporation 24.45-b08)
OS: Mac OS X 10.9 x86_64
веб-приложение, кажется, работает без servlet-api-2.5.jar
(удалено вручную), но я не проверил все функции доступны.
Является ли это зависимостью от другой библиотеки? Это плохо?
ли ваш 'WEB-INF/web.xml' указать Servlet API 2.5? или 3,0? –
Да, добавлен конфиг вопроса. – Kof