los*_*ion 5 android gradle jenkins jenkins-pipeline
我目前有一个 Jenkins 管道来构建我的 Android APK。我正在努力找出一种在构建过程中动态添加依赖项的好方法。
我不想更改主存储库中当前的 build.grade 文件:
dependencies {
api 'androidx.appcompat:appcompat:1.1.0'
...
}
Run Code Online (Sandbox Code Playgroud)
我有来自另一个私有存储库的依赖项:
api 'com.private.library:some-library:1.0'
Run Code Online (Sandbox Code Playgroud)
是否可以从 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') {...}
}
Run Code Online (Sandbox Code Playgroud)
这将在 appcompat 依赖项之后的新行上添加私有存储库依赖项。
编辑: 如果您想采用这种方法,此命令可能是更好的选择。
echo "dependencies { api 'com.private.library:some-library:1.0' }" >> path/to/build.gradle
Run Code Online (Sandbox Code Playgroud)
此命令没有 sed 文本依赖性(如果原始 build.gradle 在主存储库中发生更改,则风险较小)。它只是在文件末尾添加另一个依赖项块以及您的私有存储库依赖项。您可以在同一个文件中定义多个依赖项块,因此如果定义了其他依赖项也没有问题,它不会覆盖。
归档时间: |
|
查看次数: |
373 次 |
最近记录: |