Servlets 具有的Gradle生成webapp不存在错误

Servlets 具有的Gradle生成webapp不存在错误,servlets,gradle,Servlets,Gradle,我使用Gradle构建我的web应用程序。 我创建src/main/webapp/WEB-INF/lib来放置名为foo.jar的jar文件 foo.jar中的类如下所示: package com.foo.util; class FooUtil { public static say() { System.out.println("Hello World"); } } :clean :compileJava package com.foo.util does not exist im

我使用Gradle构建我的web应用程序。 我创建src/main/webapp/WEB-INF/lib来放置名为foo.jar的jar文件 foo.jar中的类如下所示:

package com.foo.util;

class FooUtil {
    public static say() { System.out.println("Hello World"); }
}
:clean
:compileJava
package com.foo.util does not exist
import com.foo.util.FooUtil;
在我的Servlet中,我编写了以下代码来使用它:

import com.foo.util.FooUtil;

...

public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    FooUtil.say();
}
最后,我键入以下命令来构建项目:

gradle clean build
但是,我将得到如下错误:

package com.foo.util;

class FooUtil {
    public static say() { System.out.println("Hello World"); }
}
:clean
:compileJava
package com.foo.util does not exist
import com.foo.util.FooUtil;
以下是我的build.gradle文件:

apply plugin: 'java'
apply plugin: 'war'
apply plugin: 'jetty'
apply plugin: 'idea'
apply plugin: 'eclipse'

sourceCompatibility = 1.7
version = '1.0'

repositories {
    mavenCentral()
}

dependencies {
    compile 'javax.servlet:javax.servlet-api:3.1.0'
    testCompile 'junit:junit:4.11'
    testCompile 'org.mockito:mockito-all:1.9.5'
}
我是错过了什么还是做错了什么? 谢谢你为什么不读呢

首先:最好将您的
foo.jar
放入其他文件夹,如
libs
,然后将其声明为编译依赖项


依赖关系{
提供编译“javax.servlet:javax.servlet api:3.1.0”
编译文件('libs/foo.jar')
...
}
Gradle将负责将其复制到您的战争中的适当位置

您可以在上面的代码片段中看到的另一件事是使用用于Servlet API的
providedCompile
配置。这意味着您的代码将针对该库进行编译,但不会包含在WAR中。这是避免web应用程序和servlet容器中的这些类之间发生冲突的正确方法