我正在尝试构建一个gradle插件,它执行以下操作:
当我在构建文件中对硬编码进行了详细编码时,所有这些都运行良好,但看起来像添加依赖项作为任务的一部分并不像在解析时获得该信息一样。
所以我的问题是,如何让项目重新加载配置/依赖项?
代码如下所示:
@TaskAction
void installAppserver() {
Dependency dependency = new DefaultExternalModuleDependency(group,name,version)
Configuration configuration = project.configurations.detachedConfiguration(dependency)
configuration.setTransitive(false)
configuration.files.each { file ->
if (file.isFile() && file.name.endsWith('.zip')) {
println 'Attempting to unzip: ' + file + ' into folder: ' + appServerFolder
new Copy().from(project.zipTree(file)).into(appServerFolder).execute()
}
}
}
问题是实际的工件没有得到解决!
答案 0 :(得分:3)
任务无法配置构建模型(这就是插件的作用)。可以在任务中创建和解析分离的配置。如果这不起作用,则任务代码或其尝试解析的依赖项可能存在问题。请注意,只有在定义了正确的存储库时才能解析依赖关系。
应使用new DetaultExternalModuleDependency()
而不是project.dependencies.create()
(内部类)。不能new Copy().execute()
(不能从用户代码调用Task#execute
),而应使用project.copy
。