Gradle 更改Grails定义的依赖项的版本

Gradle 更改Grails定义的依赖项的版本,gradle,grails,apache-commons,Gradle,Grails,Apache Commons,我们目前正在运行Grails3.3.10。我们在Apache commons validator的附带版本中遇到了一个问题。Grails3.3.10似乎使用了CommonsValidator的1.5.1版 理想情况下,我们只想更新commons验证器,而不是Grails,我可以看到最新的版本是1.7 是否可以覆盖Grails包含的版本 如果我将它包含在我的build.gradle中,并使用compile'commons-validator:commons-validator:1.7'将由grad

我们目前正在运行Grails3.3.10。我们在Apache commons validator的附带版本中遇到了一个问题。Grails3.3.10似乎使用了CommonsValidator的1.5.1版

理想情况下,我们只想更新commons验证器,而不是Grails,我可以看到最新的版本是1.7

是否可以覆盖Grails包含的版本

如果我将它包含在我的
build.gradle
中,并使用
compile'commons-validator:commons-validator:1.7'
将由gradle下载,但它将与1.5.1版本共存。当我在本地运行我的应用程序时,它仍将使用1.5.1版本(通过IntelliJ中的断点进行验证)


感谢您的帮助。

根据记忆,我相信您会寻找具有这种依赖性的类:

grails dependency-report > deprep.txt
然后搜索“commons validator”。这将告诉您哪些依赖项正在使用它

接下来,在build.gradle文件的dependencies(ex)下从这些插件中删除依赖项:

然后。。。您需要为“commons validator”添加所需版本的依赖项

当然,这是来自记忆,所以可能并不完全准确。但是试试看。

如果运行依赖关系报告
gradlew dependency report
,然后检查
build/reports/project/dependencies.txt
,您将看到
commons validator
已更新为1.7


如果您使用
gradlew assembly
构建
.war文件
,并检查
build/libs/tyrelhdependence-0.1.war
,您应该会看到只有一个版本的库。

您的项目可能有一些不寻常的地方,需要不同的解决方案。如果您可以共享一个示例,该示例演示了两个版本的依赖项都被拉入,那么解决这个问题可能很简单,但我认为该行为需要Gradle中存在一个bug,或者在构建配置中添加了一些有问题的东西。我猜你的IDE配置已经过时了,这就是为什么你在“错误”的jar中遇到了一个断点。谢谢,我感谢你的输入。问题似乎出在我的本地缓存/IDE上。当我构建我们的应用程序时,它包含了预期的更新包,并且在我们的prepod环境中运行良好。
compile 'org.codehaus.gpars:gpars:1.2.1', {
    exclude group:'org.codehaus.groovy', module: 'groovy-all'
}
compile 'commons-validator:commons-validator:1.7'