如何使用gradle将apk发布到Maven Central?

2024-01-23

我用 android studio 创建了一个 android 项目。

它会生成一些apk。

如何使用 gradle 将 apk 发布到 Maven Central?

我可以在 apk 的工件中写什么?

apply plugin: 'maven'
apply plugin: 'signing'

configurations {
    archives {
        extendsFrom configurations.default
    }
}

afterEvaluate { project ->
    uploadArchives {
        repositories {
            mavenDeployer {
                configurePOM(pom)
                beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) }

                repository(url: sonatypeRepositoryUrl) {
                    authentication(userName: nexusUsername, password: nexusPassword)
                }
            }
        }
    }

......

    artifacts {
       archives file: files(dir: '$buildDir/apk/*.apk', include: '*.apk')
        // archives androidReleaseApklib
        archives androidReleaseJar
        archives androidSourcesJar
        archives androidJavadocsJar
    }
}

我们使用 gradle 将 APK 文件发布到本地 Nexus 存储库。这就是我想出的办法。此示例演示了如何使用“googlePlay”构建风格。

// make sure the release builds are made before we try to upload them.    
uploadArchives.dependsOn(getTasksByName("assembleRelease", true))

// create an archive class that known how to handle apk files.
// apk files are just renamed jars.
class Apk extends Jar {
    def String getExtension() {
        return 'apk'
    }
}

// create a task that uses our apk task class.
task googlePlayApk(type: Apk) {
    classifier = 'googlePlay'
    from file("${project.buildDir}/outputs/apk/myApp-googlePlay-release.apk")
}

// add the item to the artifacts
artifacts {
    archives googlePlay
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用gradle将apk发布到Maven Central? 的相关文章

  • Android 中用虚拟键盘捕捉按键按下的情况?

    使用物理键盘 您可以使用按键监听器 http developer android com reference android text method KeyListener html 就像是 myEditText setOnKeyListe
  • 对话框上的 EditText 不返回任何文本

    我太累了 找不到错误 我没有发现任何错误 但我没有从 editText 收到任何文本 请看下面的代码 活动密码 xml
  • 毕加索动画加载图像

    我有以下代码在毕加索中加载图像 使用可绘制的占位符在图像下载时显示 不过 我想要的是一个动画旋转进度条样式的旋转器 它可以在图像加载时不断地旋转 就像我在大多数专业应用程序中看到的那样 毕加索似乎不支持这一点 只支持静态图像可绘制 有没有办
  • 在 Android 中长按时从操作模式中删除后退/主页按钮

    我已经在里面长按实现了上下文操作模式recycler view 为此我打电话给ActionModeCallback从创建动作模式开始 创建动作模式时 默认显示后退箭头 检查如下 单击后退箭头 操作模式将关闭 现在我想要hide or rem
  • 使用 RecyclerView 适配器在运行时更改布局屏幕

    我有两个布局文件 如下所示 如果列表中存在数据 则我显示此布局 当列表为空时 我会显示此布局 现在我想在运行时更改布局 当用户从列表中删除最后一项时 我想将布局更改为第二张图片中显示的 空购物车布局 In getItemCount Recy
  • 如何在android中设置多个闹钟,在这种情况下最后一个闹钟会覆盖以前的闹钟

    我正在开发一个Android应用程序 用户可以在其中设置提醒时间 但我在以下代码中遇到一个问题 即最后一个警报会覆盖之前的所有警报 MainActivity java public void setreminders DatabaseHan
  • 如何查看 Android 上的 Wi-Fi 是否已连接?

    我什至不希望我的用户尝试下载某些内容 除非他们连接了 Wi Fi 然而 我似乎只能判断是否启用了 Wi Fi 但他们仍然可以有 3G 连接 android net wifi WifiManager m WifiManager getSyst
  • Firebase ANR - 甚至不使用 firebase

    随着 GMS 的最新更新 引入了新的 ANR 如果您退出应用程序 然后返回 则 ANR 就会初始化 线程跟踪似乎指向 Firebase 但我什至从未开始使用 Firebase 我猜它一定是新的 GMS 包的一部分 06 11 00 34 0
  • 导航抽屉默认片段

    我是一名新手开发人员 我正在将导航抽屉与 android support v7 集成到我的应用程序中 我有一个问题 当我启动应用程序时 主要布局是这样的
  • 以编程方式将 TextView 添加到主屏幕小部件

    我想以编程方式将文本视图控件添加到我的主屏幕小部件 在下面的示例中 我使用 TextView 填充 Linearlayout 但是这里应该如何使用 RemoteView 它只接受 xml 资源布局作为参数 public class MyWi
  • Gradle SignArchives 无法读取 Secret Key

    我正在尝试将我的 Java 库发布到 Maven Central 其中一部分涉及使用signinggradle 插件来签署工件 我需要在不使用密钥环文件的情况下对其进行签名作为此处的文档 https docs gradle org curr
  • 从 TextView 中显示的数字中删除小数点[重复]

    这个问题在这里已经有答案了 对于我的简单计算器 我将结果显示在TextView 但它总是显示小数 我怎样才能删除它们 这是我的代码 public class MainActivity extends Activity implements
  • onClick 未在带有子项的 LinearLayout 上触发

    我有一个自定义的 LinearLayout 和一个较小的 TextView 子级 我希望能够单击 TextView 未覆盖的区域 因此我将 clickable true 和 onclicklistener 设置为 LinearLayout
  • BottomSheetDialog get Behavour 始终返回 null

    我与底部表单对话框我必须获得行为才能设置setBottomSheetCallback 来处理一些事情 As 谷歌说 https android developers googleblog com 2016 02 android suppor
  • NoClassDefFoundError:无法解析:Landroid/support/v7/appcompat/R$styleable

    新手尝试完成 Google 提供的我的第一个应用程序教程 在这个致命异常的过程中 我确实导入了很多随机包来消除许多事情的 无法解析 错误 例如 ActionBarActivity EditText Fragment LayoutInflat
  • JSON 到 hashmap (杰克逊)

    我想将 JSON 转换为 HashMapJackson http jackson codehaus org 这是我的 JSON String json Opleidingen name Bijz trajecten zorg en welz
  • Android - 9 补丁

    我正在尝试使用 9 块图片创建一个新的微调器背景 我尝试了很多方法来获得完美的图像 但都失败了 s Here is my 9 patch 当我用Draw 9 patch模拟时 内容看起来不错 但是带有箭头的部分没有显示 或者当它显示时 这部
  • 直接使用从密钥库加载的 SecretKey 时,密钥用户未经过身份验证

    我正在尝试使用 Cipher 和在 KeyStore 中加载的 SecretKey 来加密数据 但总是收到此错误 导致 android security KeyStoreException 关键用户未经过身份验证 我尝试自己创建 Secre
  • 在 Android 中使用 iText 将图像添加到特定位置

    我想使用 Android 中的 iText 将图像添加到 PDF 文件中的特定位置 这是一个可填写的表单 我添加了作为图像占位符的文本框 我想要做的就是像这样获取该文本框和图像 public class FormFill public st
  • 当ScrollView滚动到底部时加载更多数据

    我有一个带有动态加载内容的滚动视图 有时可能会有很多内容 所以我想在用户滚动到底部时加载更多内容 我搜索了合适的方法 发现了两种 onScrollChanged and getScrollY 但我不知道如何将它用于我的目的 请给我一些建议

随机推荐

  • 在 MongoDB 中应该如何建模以下多对多关系?

    假设我的学生和老师处于多对多关系 如果我只想找出给定学生的所有教师 反之亦然 我通常使用嵌入式对象 ID 对其进行建模 例如 如果教师有一个属性 StudentIds 它是学生对象 Id 的数组 那么这足以完成您需要的所有查询 然而 假设学
  • 如何在R中删除包含少于3行数据的组? [复制]

    这个问题在这里已经有答案了 我在 R 中使用 dplyr 包 并按 3 个变量 年份 站点 巢穴 对数据进行分组 我想删除少于 3 行的组 例如 在下面的示例中 我想删除 2 的行 我有很多数据可以用来做这件事 所以虽然我可以费力地手工做这
  • POST方法总是返回403 Forbidden

    我读过了Django CSRF 验证失败 https stackoverflow com questions 4547639 django csrf verification failed以及与 django 和 POST 方法相关的几个问
  • 将具有相同属性的两个对象的方法合并到每个属性的数组中

    我试图将两个对象的方法合并为一个对象 以便为父对象中的每个属性生成一组方法 obj1 prop1 method1 prop2 method2 obj2 prop1 method3 prop2 method4 期望的输出 obj1 prop1
  • Phonegap和Android溢出问题

    看来Android webview根本不关心overflow hidden当 div 溢出时的 css 属性 我拿了一个伟大的代码使用 HTML CSS 进行 GPU 转换的教程 http coenraets org blog 2013 0
  • System.Web.Routing.RouteCollection 和 System.Web.Mvc.RouteCollectionExtensions 都具有相同的简单名称“IgnoreRouteInternal”

    我有一个 ASP NET MVC 项目 我已经快两个月没有工作了 只要我不更改任何代码 在浏览器中调试就可以正常工作 当我修改任何代码 甚至添加空格时 我都会收到此错误 An exception of type System NotSupp
  • 如何在 UIImage 中仅显示图像的一部分?

    I have UIImageView我在其中显示 50x100 图像 我只想显示 50x50 图像的一部分 顶部 我怎样才能做到这一点 在里面移动大图像的非常简单的方法UI图像视图如下 让我们有一张大小为 100 400 的图像 代表某张图
  • 嵌入:mono 与 lua

    我有兴趣了解人们在 C C 应用程序中嵌入 mono NET 的开源实现 的经验 如何分发这样的应用程序以及依赖项是什么 我已经在 OS X 上进行了测试 mono 是一个巨大的框架 数百 MB 我的应用程序的用户都需要这个大框架吗 或者可
  • UI 存储数据的最佳方式是什么

    我正在做一个应用程序 页面上将显示多个项目 对于每个项目都会有很多信息 数据完全在 aspx cs后面的代码中生成并显示在ui中 当用户将鼠标悬停在特定项目上时 除了可见元素之外 我还需要后面代码中的一些其他信息来获取该项目 现在我正在存储
  • 响应 200 错误或响应代码作为错误代码

    所以 作为一名开发人员 我有一个非常基本的问题 休息标准我们有特定原因的 100 个错误代码 like 4xx 如果资源相关 5xx 如果服务器发生异常 还有很多 现在 当谈到实施时 我们会遇到一些情况直接返回404 as the 响应状态
  • 用 sympy 反转排列

    在什么功能sympy combinatorics permutations可以返回给定排列的逆排列吗 在 Google 中搜索不会给出结果 我可以写这个函数 但是如果这个函数已经实现了sympy 这将是不必要的 谢谢你的帮助 您正在寻找 I
  • 使用布局时在 Razor 视图和部分之前/附加注释(ASP.NET MVC 4)

    我的剃刀视图存储在数据库中并通过 VirtualPathProvider 提供给站点 给定某些标志 返回它们的服务将出于调试目的 使用 HTML 注释划分每个视图的开头和结尾 包括额外的调试信息 缓存 版本控制 作者身份等 使用布局时 只有
  • VSCode 在启动时打开特定文件

    目前是否可以在 VSCode 中设置启动时打开的特定文件 我安装了 待办任务 扩展 并且我想在每次加载 VSCode 时默认打开我的 TODO 文件 使用版本1 12 1 编辑 我认为最好的方法是使用可以在启动时运行命令的扩展 例子是 自动
  • 无法批量分配受保护的属性

    更新代码格式以便更好地查看 Folks 我已经研究这个有一段时间了 但我不明白这里可能出了什么问题 我正在使用设计 class User lt ActiveRecord Base has many addresses accepts nes
  • 如何在 Coq 简化过程中应用一次函数?

    据我了解 Coq 中的函数调用是不透明的 有时 我需要使用unfold应用它然后fold将函数定义 主体恢复为其名称 这通常很乏味 我的问题是 是否有更简单的方法来应用函数调用的特定实例 作为一个最小的例子 对于一个列表l 证明右附加 没有
  • 如何显示 MySQL 上最近执行的查询?

    是否有任何查询 方式来显示最后执行的查询ALL服务器 对于那些拥有 MySQL gt 5 1 12 的用户 您可以在运行时全局控制此选项 Execute SET GLOBAL log output TABLE Execute SET GLO
  • iOS Safari:100% 宽度固定位置标题比视口宽

    我遇到了一个特别影响 iOS 上 Safari 的问题 我正在构建一个页面 该页面具有固定位置标题 即视口的宽度 页面的内容是一系列图像 数量可变 应向右滚动 当用户滚动时 标题应保持在原位 在 iOS Safari 上 固定标题比视口稍大
  • ValueError:没有为 Tensorflow 中的任何变量提供梯度

    我正在尝试在 Tensorflow 中创建一个 dice loss 函数 我遇到了张量流的麻烦 执行以下代码 import tensorflow as tf import tensorlayer as tl def conv3d x inC
  • 为什么VIM会高亮某些单词?

    我注意到 使用不同的颜色方案 VIM 会下划线 突出显示某些单词 这是为什么以及如何将其关闭 与另一种配色方案 我在用着spf13 vim 配置 https github com spf13 spf13 vim并使用 Putty 进行远程连
  • 如何使用gradle将apk发布到Maven Central?

    我用 android studio 创建了一个 android 项目 它会生成一些apk 如何使用 gradle 将 apk 发布到 Maven Central 我可以在 apk 的工件中写什么 apply plugin maven app