gpt4 book ai didi

Grails 依赖解析

转载 作者:行者123 更新时间:2023-12-02 02:27:37 24 4
gpt4 key购买 nike

我是一个 Grails 新手。我有一个在 Eclipse 中运行良好的应用程序,但是当我在生产中部署时由于缺少依赖项而失败。

当我运行依赖项报告时,它显示所有依赖项都自动存在于“构建”中,但不存在于“运行时”中。

将依赖项从运行时迁移到运行时以便(我希望)将它们复制到我的 war 文件中的最巧妙方法是什么?

此外,我正在使用 sanitizer 插件。这在开发中运行良好,但“运行时”缺少依赖项,因此失败了。例如,如果我手动将其中一个依赖项添加到 BuildConfig.groovy(“org.owasp.antisamy:antisamy:1.4.3”)中,那么 grails 会因以下错误而失败:

加载器约束违规:加载器(实例)先前为名称为“org/xml/sax/SAXParseException”的不同类型启动加载

我假设这是一个类路径问题,但我不确定为什么只有在我手动添加依赖项时才会发生这种情况 - 它肯定一直存在吗?

最佳答案

没错,您必须将缺少的运行时依赖项添加到 BuildConfig.groovy。最简单的方法是将它们从插件的 BuildConfig.groovy 复制到您的应用程序中。您还应该为各自的 grails 插件创建一个 JIRA,以便在上游修复此问题。

Maven 存储库中的许多 jar 都没有在它们的 pom 文件中正确定义它们的依赖项。在 BuildConfig.groovy 中有一种方法可以通过关闭传递性来解决这个问题:

runtime('org.owasp.antisamy:antisamy:1.4.3') {
transitive = false
}

除了“transitive=false”之外,您还可以尝试使用例如仅排除特定依赖项

excludes "xml-apis", "xerces"

在“运行时”闭包内。

关于Grails 依赖解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5168276/

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