小知识 - Gradle7.0之后JitPack发布组件需要注意的几个问题

简介: 最近在使用 JitPack 发布组件时候,遇到了这几个问题,着实找了好一会才解决,分享一下。🙃

问题1 - 调整jdk版本为11

  • What went wrong:
    An exception occurred applying plugin request [id: ‘com.android.application’]

Failed to apply plugin ‘com.android.internal.application’.

Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8.

You can try some of the following options:

- changing the IDE settings.

- changing the JAVA_HOME environment variable.

- changing org.gradle.java.home in gradle.properties.

这个问题,我们如果是在本地Android Studio,很简单,直接改 gradle ,但是 jit 上呢😶,解决办法如下:

创建一个 jitpack.yml 文件,具体如下:

网络异常,图片无法展示
|

jitpack.yml

jdk:
  - openjdk11

问题2 - 无法创建 AndroidMavenPlugin 插件

  • What went wrong:
    A problem occurred evaluating script.

Failed to apply plugin ‘com.github.dcendents.android-maven’.

Could not create plugin of type ‘AndroidMavenPlugin’.

> Could not generate a decorated class for type AndroidMavenPlugin.

> org/gradle/api/publication/maven/internal/MavenPomMetaInfoProvider

解决办法:

打开相应的组件的 build.gradle (如果你的组件都写在app里了,那就只写到app里即可),增加以下内容:

plugins {
    ...
    id 'maven-publish'
}
afterEvaluate {
    publishing {
        publications {
            release(MavenPublication) {
                from components.release
                groupId = 'com.petterp'
                artifactId = 'statex'
                version = '1.0-dev02'
            }
        }
    }
}
  • groupId 是你的包名除 labrary 之前的全称
  • artifactId 对应 labrary id ,即组件ID
  • version 版本号

示例

比如上述全称是 com.petterp.statex , statex 是我的组件 library,故就是上述这样的写法。

当然对于 version 这些统一管理 你也可以配置到专门的 gradle 文件中,这里直接引用即可,这里就不多赘述了。

目录
相关文章
|
人工智能 自然语言处理 安全
【网安AIGC专题10.19】论文3代码生成:ChatGPT+自协作代码生成+角色扮演(分析员、程序员、测试员)+消融实验、用于MBPP+HumanEval数据集
【网安AIGC专题10.19】论文3代码生成:ChatGPT+自协作代码生成+角色扮演(分析员、程序员、测试员)+消融实验、用于MBPP+HumanEval数据集
380 0
|
2月前
|
缓存 JSON 算法
1688 商品详情接口开发实战:从平台特性到高可用实现
本文深入解析了1688平台商品详情接口的技术实现,涵盖参数设计、签名机制、数据解析等内容,并结合代码示例展示如何构建适用于B2B业务场景的接口调用系统。重点突出其批发属性、供应商信息、多规格支持及定制化能力等B2B特性,帮助开发者高效对接1688开放平台。
1688 商品详情接口开发实战:从平台特性到高可用实现
|
Linux 数据安全/隐私保护
Linux中普通用户使用sudo命令提示lin is not in the sudoers file. This incident will be reported.
Linux中普通用户使用sudo命令提示lin is not in the sudoers file. This incident will be reported.
|
监控 安全 数据可视化
Grafana 安全性和权限管理
【8月更文第29天】Grafana 是一个广泛使用的开源平台,用于可视化和监控时间序列数据。随着 Grafana 在生产环境中的广泛采用,确保其安全性变得至关重要。本文将探讨如何配置 Grafana 的访问控制和安全设置以保护敏感数据,并提供一些具体的代码示例。
1620 2
|
机器学习/深度学习 人工智能 自然语言处理
计算机视觉借助深度学习实现了革命性进步,从图像分类到复杂场景理解,深度学习模型如CNN、RNN重塑了领域边界。
【7月更文挑战第2天】计算机视觉借助深度学习实现了革命性进步,从图像分类到复杂场景理解,深度学习模型如CNN、RNN重塑了领域边界。AlexNet开启新时代,后续模型不断优化,推动对象检测、语义分割、图像生成等领域发展。尽管面临数据隐私、模型解释性等挑战,深度学习已广泛应用于安防、医疗、零售和农业,预示着更智能、高效的未来,同时也强调了技术创新、伦理考量的重要性。
255 1
|
PyTorch 开发工具 算法框架/工具
yolo系列的ONNX部署(C++)【适用于v4\v5\v5-6.1\v7】
yolo系列的ONNX部署(C++)【适用于v4\v5\v5-6.1\v7】
1735 0
yolo系列的ONNX部署(C++)【适用于v4\v5\v5-6.1\v7】
|
Java Shell Android开发
Android11 有线网和wifi优先级设置
Android11 有线网和wifi优先级设置
1075 0
|
运维 Linux 应用服务中间件
Centos7如何配置firewalld防火墙规则
Centos7如何配置firewalld防火墙规则
464 0
|
Java 测试技术 API
Java RESTful中的DELETE请求:资源的删除与数据清除
在RESTful架构中,DELETE请求是一种用于删除已有资源的关键操作。DELETE请求允许客户端请求服务器删除指定的资源,以及与之关联的数据。本文将引导您深入了解Java中使用DELETE请求构建RESTful API,探讨其特点、实现方式、用例以及在实际应用中的优势。
|
Python
Python pip install修改默认下载路径
Python pip install修改默认下载路径
682 0