[英]Gradle configuration provided Dependency Ignored in Subproject Build
我有一个包含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。
我在不正确的地方定义了依赖项吗?
由于Gradle 2.12引入了compileOnly
依赖关系,因此我建议使用它。 特别是当您将Web应用程序部署在Tomcat,JBoss等上时,Servlet容器将提供Servlet API。
dependencies {
compileOnly group: 'javax.servlet', name: 'javax.servlet-api', version: '3.1.0'
}
provided
是迄今为止在Gradle中找不到的Maven项目中使用的范围。 但是compileOnly
非常接近compileOnly
provided
范围。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.