更改 Graiils 定义的依赖项版本

Change version of dependency defined by Graiils

我们目前运行正在使用 Grails 3.3.10。我们正在 运行 解决包含的 Apache commons-validator 版本的问题。 Grails 3.3.10 似乎使用 commons-validator 1.5.1 版。

理想情况下,我们只想更新 commons-validator 而不是 Grails,我可以看到最新版本是 1.7。

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

似乎如果我将它包含在我的 build.gradlecompile '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):

下删除这些插件的依赖
compile 'org.codehaus.gpars:gpars:1.2.1', {
    exclude group:'org.codehaus.groovy', module: 'groovy-all'
}

那么...您需要为 'commons-validator'.

添加所需版本的依赖项

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

https://github.com/jeffbrown/tyrelhdependency

查看项目

https://github.com/jeffbrown/tyrelhdependency/blob/fb2912ebbac7ef6db2ee9446709248d8c70f50e6/build.gradle#L76

compile 'commons-validator:commons-validator:1.7'

如果你 运行 依赖报告 gradlew dependencyReport 然后检查 build/reports/project/dependencies.txt 你会看到 commons-validator 已经更新到 1.7。

如果您使用 gradlew assemble 构建 .war file 并检查 build/libs/tyrelhdependency-0.1.war,您应该会看到只有 1 个版本的库。