gpt4 book ai didi

eclipse - 如何在没有错误的情况下将Gradle依赖项管理与Eclipse WTP项目结合使用?

转载 作者:行者123 更新时间:2023-12-03 05:01:29 24 4
gpt4 key购买 nike

我是Gradle的新手。我已经使用Gradle插件将项目设置为Gradle Project,以便基于gradle构建脚本重新构建项目配置。我试图将我的应用程序设置为动态Web项目(使用eclipse-wtp Gradle插件),并且这样做,我需要我的项目才能访问Tomcat Server 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 jar:

    Gradle Dependencies

    这是我的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

    最佳答案

    建议使用WTP项目的方法是在禁用“依赖管理”的情况下导入它们。这是因为用于填充“Gradle Dependencies”容器的Gradle工具API不支持WTP项目。

    如果已经导入了项目,则可以按以下方式禁用依赖项管理:

    右键单击项目,然后选择“Gradle >>禁用依赖关系管理”。

    然后,由于缺少依赖项,您可能会在项目上看到错误。

    右键单击项目,然后选择“渐变>>全部刷新”。

    这将执行“eclipse”任务,并以与从命令行执行此操作几乎相同的方式生成eclipse元数据(.classpath文件等)。

    如果这对您不起作用,则还有另一种选择。您可以启用“依赖关系代理”,并且可以使用全局排除筛选器从部署程序集中删除“不需要的东西”。这确实不是一个很好的解决方案,但是更多的是针对您所遇到的问题的解决方法。

    转到“Windows >>首选项>> Gradle >> WTP”。您可以在此处编辑正则表达式列表,以从部署程序集中删除tomcat依赖项。

    关于eclipse - 如何在没有错误的情况下将Gradle依赖项管理与Eclipse WTP项目结合使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33832125/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com