有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java gradle eclipse依赖项,跳过testCompile/ProviderRuntime等

Gradle被用来构建一个简单的web应用程序,在同一个工作区内分成几个eclipse项目。Gradle脚本可以运行测试/创建可部署的EAR文件。EAR文件在Liberty Profile服务器上运行时没有任何问题

然而,我在eclipse上运行它时遇到了问题(使用gradle插件)。问题的根源似乎是自动的“gradle依赖性”管理(由“classpass容器”org.springsource.ide.eclipse.gradle.classpathcontainer注入的一系列依赖性)。这件事似乎获得了任何依赖性,无论是compileOnly、testCompile、providedCompile等等。这导致了具有javax类的LIB。坚持不懈javax。注入是独立构建所需的,但由应用服务器提供,从eclipse运行时不需要,作为应用程序的一部分部署到应用服务器,并导致各种错误/警告

有没有一种方法可以过滤gradle eclipse插件用于部署的依赖项


共 (1) 个答案

  1. # 1 楼答案

    这是STS gradle工具长期存在的问题。它源于这样一个事实:gradle工具api在为“eclipse类路径”生成的模型中不区分提供/测试等依赖项。至少在实施STS gradle工具时是这样。从那时起,工具api模型已经发展,但STS gradle工具正在逐步淘汰,这不太可能得到真正的修复

    也就是说,有一种变通方法专门针对这种情况实施

    转到Window >> Preferences >> Gradle (STS) >> WTP。在这里,您将看到一个标签为Gradle Dependencies Deployment Exclusions的正则表达式列表。你可以在那里添加更多的表达式。它们充当一种全局过滤器。任何与这些表达式之一匹配的jar都将从WTP部署程序集中排除

    这可能对你有用

    然而,这是一个有点粗糙的变通方法

    所以。。。我听说BuildShip是STS Gradle tooling现在的正式继任者has WTP support。所以也许你想尝试切换到BuildShip。我假设它处理提供的、测试等依赖关系,正确地W.R.T到WTP部署程序集(如果它不应该考虑提交一个错误报告来阻止构建)。p>