我有一个包含1个子项目的项目:
projroot/
settings.gradle
build.gradle
mod1/
build.gradle
在mod1/build.gradle
中有一个“提供”依赖项:
apply plugin: 'java'
configurations {
provided
}
repositories {
mavenCentral()
}
dependencies {
provided group: 'javax.servlet', name: 'javax.servlet-api', version: '3.1.0'
}
当mod1/src/main/java/One.java
导入javax.servlet.ServletContext
时,这似乎不起作用:
> Task :mod1:compileJava FAILED
/home/x/groot/mod1/src/main/java/One.java:1: error: package javax.servlet does not exist
import javax.servlet.ServletContext;
^
1 error
...
BUILD FAILED in 0s
2 actionable tasks: 1 executed, 1 up-to-date
使用gradle-4.4.1。
我是否在不正确的地方定义了依赖关系?
答案 0 :(得分:0)
由于Gradle 2.12引入了compileOnly
个依赖项,我建议使用它。特别是当涉及Servlet容器时,一旦您将Web应用程序部署在例如servlet容器上,它将由servlet容器提供。 Tomcat,JBoss,....
dependencies {
compileOnly group: 'javax.servlet', name: 'javax.servlet-api', version: '3.1.0'
}
provided
是Maven项目中使用的范围,到目前为止还没有在Gradle中找到它。但是compileOnly
非常接近Mavens provided
范围。