android - gradle publish.dependsOn('assemble')不起作用
问题描述
我在我的 gradle 文件中添加了这一行:
project.tasks.findByName('publish').dependsOn('assemble')
publish
但是执行任务时出现错误:
* What went wrong:
Execution failed for task ':apn:publishLibraryPublicationToMavenRepository'.
> Failed to publish publication 'library' to repository 'maven'
> Invalid publication 'library': artifact file does not exist: '/Users/yuanhaodong/Projects/Bk/code_base/blackkey_android/modules/apn/build/outputs/aar/apn-release.aar'
我已经尝试过project.tasks.findByName('publish').dependsOn('assembleRelease')
,但仍然没有运气。
然后我改为
project.tasks.findByName('publishLibraryPublicationToMavenRepository').dependsOn('assemble')
但project.tasks.findByName('publishLibraryPublicationToMavenRepository')
返回 null 。
Gradle 版本:4.10.1 Android gradle 插件版本:3.3.0
任何帮助表示赞赏。提前致谢。
解决方案
如果您想让您的publish*
任务(来自maven-publish
插件)依赖于相应的assemble*
任务,请将其添加到应用程序的根目录中build.gradle
:
/* Restricting publications to specific repositories */
tasks.withType(PublishToMavenRepository) { task ->
onlyIf {[...]}
def match = task.name =~ '^publish(.*)(Release|Debug)PublicationTo(.*)$'
dependsOn("assemble${match[0][1]}")
}
组装任务的名称是根据发布任务的名称计算得出的,发布任务的名称构造为publish PubName PublicationTo RepoName Repository
推荐阅读
- matlab - MATLAB将graythresh输出转换为实际强度
- github - 将 zip 文件推送到 GitHub 存储库
- mongodb - 在 MongoDB 中,如何只获取集合的特定字段?
- python - 在 numpy 中创建 4 维张量掩码
- c# - C# -- 如何为 MSMQ 构建动态队列路径名?
- wordpress - Woocommerce:不能使用 woocommerce 模板
- ios - 无法写入 iCloud Drive
- angular - 扩展角材料组件的更好方法
- drupal - WSO2 身份服务器 - SAML - 重定向页面一直加载,而不是把我带到应用程序
- python - 树遍历“打印代码”可以返回吗?