我正在编写一个需要使用外部库的Gradle插件。我希望该库的版本可以由插件的用户从他的build.gradle
文件中定义。
我目前在构建脚本的评估之后定义了依赖项,我想知道当插件是应用时是否有一种方法来定义它,具有依赖项信息(名称,组,版本等...)在解决依赖关系时进行评估。
换句话说,是否可以使用与约定映射类似的东西来设置依赖项的字段?
答案 0 :(得分:1)
我认为Dependency
是启用了约定映射。对于另一种方法,请参阅Gradle自己的代码质量插件,所有这些插件都允许在其扩展对象上设置toolVersion
(例如CheckstyleExtension
)。
答案 1 :(得分:0)
在下面,您可以找到一个自包含的build.gradle
文件,该文件演示了如何懒惰地评估依赖版本。如果运行./gradlew dependencies
,则会看到消息“现在才计算版本”。如果您运行./gradlew projects
,则不会看到该消息。
repositories {
jcenter()
}
configurations {
myConfig
}
configurations.myConfig.defaultDependencies { deps ->
// here you can perform whichever calculation is needed to be run lazily,
// e.g., to get the version from some external file or from the extension of
// a Gradle plugin
println 'Calculating the version only now'
def calculatedVersion = '4.12'
// JUnit used for demo purposes only
deps.add(project.dependencies.create("junit:junit:$calculatedVersion"))
}
defaultDependencies
方法很有趣,或者您也可以使用withDependencies
。