2013-03-22 419 views
6

我對gradle和構建系統很陌生, 我想用gradle構建項目,但它找不到我在幾個類中使用的Tomcat服務器的包我的項目。Gradle構建失敗錯誤:包javax.servlet不存在

我的生成配置:發生

apply plugin: 'java' 
apply plugin: 'war' 

repositories { 
    flatDir { dirs "WebContent/WEB-INF/lib" } 
    mavenCentral() 
} 

dependencies { 
    compile group: 'com.orientechnologies', name: 'orient-commons', version: '1.3.0' 
    compile group: 'com.orientechnologies', name: 'orientdb-client', version: '1.3.0' 
    compile group: 'com.orientechnologies', name: 'orientdb-core', version: '1.3.0' 
    compile group: 'com.orientechnologies', name: 'orientdb-graphdb', version: '1.3.0' 
    compile group: 'com.orientechnologies', name: 'orientdb-enterprise', version: '1.3.0' 
    compile group: 'com.tinkerpop.blueprints', name: 'blueprints-core', version: '2.3.0' 
    compile group: 'com.tinkerpop.blueprints', name: 'blueprints-orient-graph', version: '2.3.0' 
    compile group: 'com.tinkerpop', name: 'pipes', version: '2.3.0' 
    compile group: 'com.tinkerpop.gremlin', name: 'gremlin-java', version: '2.3.0' 
    compile group: 'com.tinkerpop.gremlin', name: 'gremlin-groovy', version: '2.3.0' 

    testCompile group: 'junit', name: 'junit', version: '4.+' 
    testCompile group: 'org.mockito', name: 'mockito-all', version: '1.9.5' 

} 
sourceSets { 
    main { 
     java { 
      srcDir 'src' 
     } 
    } 
    test { 
     java { 
      srcDir 'test' 
     } 
    } 
} 

task wrapper(type: Wrapper) { 
    gradleVersion = '1.3' 
} 
war { 
    from 'WebContent' 
} 

錯誤,當我啓動搖籃任務 - 構建:

OrientDBFilter.java:6: error: package javax.servlet does not exist 
import javax.servlet.FilterChain; 
OrientDBFilter.java:5: error: package javax.servlet does not exist 
import javax.servlet.Filter; 

....

回答

9

通常你會使用providedCompile。例如:

providedCompile group: 'javax.servlet', name: 'javax.servlet-api', version: '3.0.1' 

然後你的應用程序將會編譯,但gradle不會在最終的war文件中包含servlet api。

-1

嘗試將程序包作爲編譯依賴項。 在您的build.gradle中:

dependencies { 
    compile "javax.servlet:javax.servlet-api:+" 
}