我是 Gradle 的新手。我已将我的项目设置为Gradle Project
使用 Gradle 插件,以便基于 gradle 构建脚本重新构建项目配置。我正在尝试将我的应用程序设置为动态 Web 项目(使用eclipse-wtp
Gradle 插件),并且这样做,我需要我的项目能够访问 TomcatServer Runtime
库。
显然,在 Gradle 中做到这一点的方法是将其设置为“提供的依赖项”,它应该只用于编译而不是部署。但是,这对我的 IDE Tomcat 部署不起作用。Gradle 似乎正在配置两组依赖项:Web App Libraries
,它尊重提供的依赖设置,而Grade Dependencies
,它不。 两者都包含在 Web 应用程序部署程序集中,这意味着“提供的”Tomcat jar 正在部署并阻止 Tomcat 启动。
如何配置 Gradle 以防止Gradle Dependencies
自动包含在 Eclipse 部署程序集屏幕中?我无法手动删除它,因为它只会在 Gradle 下次运行时刷新。
我已经尝试过Remove Gradle Dependency Management
(右键单击项目 -> Gradle -> 删除 Gradle 依赖管理),但这不起作用。它解决了 Tomcat 问题,但是我的测试依赖项不再位于构建路径上,这导致我的单元测试出现错误。
如果你也手动的话,上面的方法实际上是有效的Gradle -> Refresh All
。这将导致 Gradle Eclipse 插件重新生成配置文件,并且不属于其中的依赖项Web App Libraries
将包含在Referenced Libraries
.
Gradle -> Remove Dependency Management
只会删除Grade Dependencies
库,本身并不够。
我在用:
- Eclipse Luna SR1a (4.4.1)
- Gradle IDE 插件 3.7.0 ( https://marketplace.eclipse.org/content/gradle-integration-eclipse-0 )
这是导致问题的库,它包括“提供的”Tomcat jars:
这是我的 build.gradle 文件:
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'war'
apply plugin: 'eclipse-wtp'
webAppDirName = 'WebContent'
// <snip>
dependencies {
providedCompile('org.apache.tomcat:tomcat-catalina:7.0.34')
// <snip>
}
// snip