我是 gradle 脚本的新手,我正在尝试做一些简单的事情。在 tarball 中的 artifactory repo 中有一个 android colours.xml。我想要做的就是配置 gradle,以便在它构建之前从 repo 获取该文件(如果它已更改)并将其复制到我的 android 模块的 res/values/colors.xml。我可以在命令行上使用 npm install 来做到这一点,但不知道如何从 build.gradle 中运行它。我的第一个尝试是在我的模块的 build.gradle 中。
task getResourceTokens(type: Exec) {
workingDir "/Users/cbattle/Dev/DesignTokenTest"
executable 'npm'
args = ['install https://artifactory-lvs.corpzone.internalzone.com/artifactory/.../token-tester-0.0.7.tgz']
doLast {
println "Executed!"
}
}
task copyfiles(type: Copy) {
from '/Users/cbattle/node_modules/.../colors.xml'
into '/Users/cbattle/Dev/DesignTokenTest/atoms/src/main/res/values'
}
copyfiles.dependsOn(getResourceTokens)
preBuild.dependsOn(copyfiles)
这失败了
Execution failed for task ':atoms:getResourceTokens'.
> Process 'command 'npm'' finished with non-zero exit value 1
我的 .npmrc 文件中有正确的凭据。如果我只是手动使用命令行,它会起作用。不清楚为什么会失败。
我还安装了 https://github.com/node-gradle/gradle-node-plugin,因此可以改用它。但以上应该有效。有什么想法吗?
谢谢