[英]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.