[英]Gradle configuration provided Dependency Ignored in Subproject Build
I have a project with 1 subproject: 我有一个包含1个子项目的项目:
projroot/
settings.gradle
build.gradle
mod1/
build.gradle
In mod1/build.gradle
there is a "provided" dependency: 在
mod1/build.gradle
有一个“提供的”依赖项:
apply plugin: 'java'
configurations {
provided
}
repositories {
mavenCentral()
}
dependencies {
provided group: 'javax.servlet', name: 'javax.servlet-api', version: '3.1.0'
}
This doesn't seem to work when mod1/src/main/java/One.java
imports javax.servlet.ServletContext
: 当
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
Using gradle-4.4.1. 使用gradle-4.4.1。
Am I defining the dependency in an incorrect place? 我在不正确的地方定义了依赖项吗?
Since Gradle 2.12 introduced compileOnly
dependencies I rather recommend to use this. 由于Gradle 2.12引入了
compileOnly
依赖关系,因此我建议使用它。 Especially when it comes to a Servlet API that will be provided by the servlet container once you deploy your web application on eg Tomcat, JBoss, .... 特别是当您将Web应用程序部署在Tomcat,JBoss等上时,Servlet容器将提供Servlet API。
dependencies {
compileOnly group: 'javax.servlet', name: 'javax.servlet-api', version: '3.1.0'
}
provided
is a scope used in Maven project that haven't found place in Gradle so far. provided
是迄今为止在Gradle中找不到的Maven项目中使用的范围。 But compileOnly
is very close to Mavens provided
scope. 但是
compileOnly
非常接近compileOnly
provided
范围。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.