gpt4 book ai didi

android - 在 Jenkins 构建期间动态添加 Android 项目依赖项

转载 作者:行者123 更新时间:2023-12-01 03:05:15 24 4
gpt4 key购买 nike

我目前有一个构建我的 Android APK 的 Jenkins 管道。我正在努力寻找一种在构建过程中动态添加依赖项的好方法。

我不想更改主存储库中当前的 build.grade 文件:

dependencies {
api 'androidx.appcompat:appcompat:1.1.0'
...
}

我有一个来自另一个私有(private)存储库的依赖项:
api 'com.private.library:some-library:1.0'

是否可以从 Jenkins 管道访问 build.gradle 文件依赖项并动态添加依赖项?我可以将当​​前的 android 项目包装在另一个包含依赖项的 gradle 文件中吗?或者可能是在构建时添加依赖项的另一种好方法?

最佳答案

根据您的管道的定义方式。您可以在克隆存储库之后和构建 apk 之前添加一个在管道中运行 shell 命令的步骤。例如,如果在 linux 上运行,请使用 sed 添加您要添加​​的行。

stages {
stage('Clone repo') {...}
stage('Add dependency') {
steps {
sh '''
sed -i "/api 'androidx.appcompat:appcompat:1.1.0'/a api 'com.private.library:some-library:1.0'" ./path/to/build.gradle
'''
}
}
stage('Build') {...}
}

这将在 appcompat 依赖项之后的新行上添加私有(private) repo 依赖项。

编辑:
如果您想采用这种方法,则此命令可能是更好的选择。
echo "dependencies { api 'com.private.library:some-library:1.0' }" >> path/to/build.gradle 

此命令没有 sed 文本依赖项(如果原始 build.gradle 在主存储库中更改,风险较小)。它只是在文件末尾添加了另一个包含您的私有(private) repo 依赖项的依赖项 block 。您可以在同一个文件中定义多个依赖 block ,因此如果定义了其他依赖项也没问题,它不会覆盖。

关于android - 在 Jenkins 构建期间动态添加 Android 项目依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58478571/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com