【发布时间】:2015-08-25 02:58:38
【问题描述】:
我正在将包含 Grails 2.4.2 应用程序的现有基于 Maven 的项目转换为 Gradle 2.6 和 Grails 3.0.4。它是一个混合环境,在几个子项目中使用了 Java、Groovy 和 Grails。我已将所有 pom.xml 文件转换为 build.gradle 文件,从 ./gradlew init 开始,然后根据需要进行手动编辑。在将 Grails 项目的 grails-app/conf/BuildConfig.groovy 转换为等效的 build.gradle 之前,使用 Gradle 2.6 构建的一切都很好。将 Grails 项目的 BuildConfig.groovy 文件转换为 build.gradle 后,尝试运行 ./gradlew build 时出现以下错误:
FAILURE: Build failed with an exception.
* What went wrong:
Could not resolve all dependencies for configuration ':foo:runtime'.
> Could not find json-lib-jdk15.jar (net.sf.json-lib:json-lib:2.4).
Searched in the following locations:
file:/Users/xyz/.m2/repository/net/sf/json-lib/json-lib/2.4/json-lib-2.4-jdk15.jar
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
BUILD FAILED
上面显示的本地 M2 缓存中确实存在 json-lib-2.4.jar 文件,但其中没有 -jdk15 部分。 Grails 项目的 build.gradle 文件中的任何 json-lib jar 文件都没有明确的依赖关系。并行项目确实对该库有明确的依赖关系,但该项目构建良好。我尝试将依赖项显式添加到 Grails 项目中的 build.gradle 文件中,无论是否有 "classifier: 'jdk15'" 到依赖项声明。当我运行 ./gradlew 依赖项时,我注意到 json-lib jar 文件的旧版本 (2.3) 显示在列表中,作为某些 Apache HttpComponent 内容的隐含依赖项。然后我在顶层 build.gradle 的 allProjects 部分尝试了这两个版本:
configurations {
all*.exclude module: 'json-lib'
}
还有:
configurations {
all*.exclude module: 'json-lib', classifier: 'jdk15'
}
这两种变体都没有任何区别。我真的坚持这一点,并希望获得有关如何前进的任何提示。万一有所不同,我在带有 MacOS 10.10.5 的 Mac 上运行它,JDK 版本是 1.8.0_25-b17。谢谢。
【问题讨论】:
标签: grails gradle grails-3.0