运行 Gradle 来自子项目的根项目任务
Running Gradle root project task from subproject
我面临以下问题。我有多模块 Gradle 项目。第一个模块是我的根项目,第二个模块是集成测试。
为了让我的集成测试 运行,复制任务需要先 运行 才能将一些资产移动到项目根目录的文件夹中。
我已经在我的根项目中定义了这样一个任务,当我尝试调用它时什么也没做(我尝试了几种不同的调用方式)。
由于失败,我继续在子项目本身上创建了以下任务:
task prepareTestAssets(type: Copy) {
description = "Copies the needed jars from the root project output build dir"
copy {
from rootProject.configurations.compileClasspath
into ("${rootProject.rootDir}/classes")
rename { fileName -> fileName.replace '-internal', '' }
rename 'ads-(.+).jar', 'ads.jar'
fileMode 0755
}
copy {
from ("${rootProject.buildDir}/libs")
into ("${rootProject.rootDir}/classes")
fileMode 0755
}
}
我有另一个任务依赖它。我的目标是让它复制根项目 类 以及在 build/libs
下生成的 jar 到一个目录中(集成测试需要到 运行)。
我的问题是,当这个 运行s 时,它似乎找不到源并且一直失败。
谁能帮我排查为什么我不能从子项目的上下文中复制根项目的资产
看来您应该省略 copy{}
闭包并直接指定其内容。
用于任务的配置以其他方式提供给闭包,因此任务认为它没有配置(它不知道寻找名为 "copy" 的闭包)。
我面临以下问题。我有多模块 Gradle 项目。第一个模块是我的根项目,第二个模块是集成测试。
为了让我的集成测试 运行,复制任务需要先 运行 才能将一些资产移动到项目根目录的文件夹中。
我已经在我的根项目中定义了这样一个任务,当我尝试调用它时什么也没做(我尝试了几种不同的调用方式)。
由于失败,我继续在子项目本身上创建了以下任务:
task prepareTestAssets(type: Copy) {
description = "Copies the needed jars from the root project output build dir"
copy {
from rootProject.configurations.compileClasspath
into ("${rootProject.rootDir}/classes")
rename { fileName -> fileName.replace '-internal', '' }
rename 'ads-(.+).jar', 'ads.jar'
fileMode 0755
}
copy {
from ("${rootProject.buildDir}/libs")
into ("${rootProject.rootDir}/classes")
fileMode 0755
}
}
我有另一个任务依赖它。我的目标是让它复制根项目 类 以及在 build/libs
下生成的 jar 到一个目录中(集成测试需要到 运行)。
我的问题是,当这个 运行s 时,它似乎找不到源并且一直失败。
谁能帮我排查为什么我不能从子项目的上下文中复制根项目的资产
看来您应该省略 copy{}
闭包并直接指定其内容。
用于任务的配置以其他方式提供给闭包,因此任务认为它没有配置(它不知道寻找名为 "copy" 的闭包)。