博客
关于我
Library Module上传Jcenter详解
阅读量:791 次
发布时间:2023-01-31

本文共 3702 字,大约阅读时间需要 12 分钟。

将Library Module上传至Jcenter

作为开发人员,分享今天学习的经验:将Library Module上传至Jcenter,有两种常用的方法。第一种是直接使用GRADLE工具上传,第二种则是通过封装成GRADLE插件的方式向Jcenter发布。下面我将详细记录我的实践和探索过程。


注册账号

首先,需要报名一个Jcenter账号。如果你还没有账号,前往Jcenter官网进行注册。注册完成后,我会指导你配置必要的开发环境,确保后续操作顺利进行。


项目准备

在开始上传之前,你需要一个已经编译成功的Module。如果你还没有Module,可以新建一个简单的项目,先进行构建测试。请注意,普通Module与特定Module(如App Module)存在差异。

区分Module类型

  • 特定Module(如Library Module)没有applicationId,而普通App Module中包含包名']['applicationId']。
  • 特定Module不需要作为主应用使用,无需像App Module那样附加AndroidManifest文件。

以下是项目根目录(即build.gradle)中必须配置的部分,确保工具能够识别并上传Module。

buildscript {    repositories {        jcenter()    }    dependencies {        classpath 'com.android.tools.build:gradle:2.1.2'  // Pagination插件        classpath 'com.github.dcendents:android-maven-gradle-plugin:1.3'  // Maven插件        classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.6'  // Bintray插件        classpath "org.jfrog.buildinfo:build-info-extractor-gradle:4.0.0"  // Build信息处理插件    }}allprojects {    repositories {        jcenter()    }}// 查看完整配置,在`/用户 hasteBSDir/ext Demonstrate ext declines

为了集成插件,确保插件版本与GRADLE版本匹配。例如,如果使用GRADLE 2.1.2,对应的插件版本为1.3。如果使用其他版本,可能会出现编译错误。


配置用户信息

接下来的步骤需要你配置开发环境中的环境变量。我们需要在local.properties文件中添加几个关键参数:

BINTRAY_USER=用户名BINTRAY_KEY=API密钥

将这些信息直接放入local.properties文件即可。这个文件位于Module的根目录下,以避免信息泄露(unlike build.gradle文件)。local.properties除了用于存储Jcenter的API信息外,本地开发中可能还需要存储Android SDK路径等必要配置。


上传至Jcenter

准备上传文件

在开始上传之前,请确保你的Module已经被正确构建并包含了必要的依赖。在build.gradle中添加下述内容,将依赖项和插件应用到你的Module:

dependencies {    compile fileTree(dir: 'libs', include: ['*.jar'])}apply plugin: 'com.github.dcendents.android-maven'apply plugin: 'com.jfrog.bintray'def libname = 'your_lib_name'  // 项目名称def libdesc = '描述信息'version = rootProject.ext.versiongroup = rootProject.ext.group// 查看完整代码示例

生成文档与源代码

添加Javadoc生成和源代码打包任务,确保项目文件符合Jcenter要求:

task sourcesJar(type: Jar) {    source = android.sourceSets.main.java.srcDirs    classifier = 'sources'}task javadoc(type: Javadoc) {    source = android.sourceSets.main.java.srcDirs    classpath += project.files(android.getBootClasspath().join(File.pathSeparator))    options {        encoding = 'UTF-8'        charSet = 'UTF-8'        show.version = true        show.authors = true        verbose = false        failOnError = false  // 避免因验证错误终止构建    }}task javadocJar(type: Jar, dependsOn: javadoc) {    classifier = 'javadoc'    from javadoc.destinationDir}task copyDoc(type: Copy) {    from "${buildDir}/docs/"    into "docs/"}artifacts {    archives javadocJar    archives sourcesJar}

配置Maven库信息

确保POM.xml文件包含项目的详细信息,如:

< packaging>: 需要确保为aar格式 < name>: 项目名称 < url>: 项目访问地址 < license>: 项目授权信息 < developer>: 开发者信息 < scm>: 记录开发过程

开始上传

在终端运行以下命令,将Module上传至Jcenter:

gradle bintrayUpload

上传后续操作

完成上传后,访问Jcenter官网,进入Maven库列表,点击你发布的项目磁�偶即可查看项目详情。按照提示完成发布流程,通常只需填写摘要信息即可完成。


常见问题及解决方案

在实际操作中,可能会遇到以下问题:

1. 编码问题

  • 错误信息Java: ... Unicode code point U+resse_CANNOT_BE_CONVERTED_U_2192
  • 解决方法:在Javadoc任务中手动指定编码为UTF-8
task javadoc(type: Javadoc) {    options.encoding "UTF-8"    options.charSet 'UTF-8'}

2. 权限不足

  • 错误信息Gradle.bat无法访问目录或文件
  • 解决方法:检查GRADLE安装路径和环境变量是否配置正确,并确保有管理员权限运行。

3. 兰ards的Lint检查

  • 错误信息:Lint检查中发现问题,导致构建中断
  • 解决方法:在Module中添加Lint配置关闭警告:
Android {    lintOptions { abortOnError false }}

4. Javadoc生成失败

  • 错误信息:Javadoc生成失败
  • 解决方法:优化Javadoc检查配置:
allprojects {    repositories {        jcenter()    }    tasks.withType(Javadoc) {        options.addStringOption('Xdoclint:none', '-quiet')        options.addStringOption('encoding', 'UTF-8')    }}

5. 权限不足显示 401 错误

  • 错误信息:由于未注入正确的API Key导致权限不足
  • 解决方法:确保local.properties文件中包含正确的BINTRAY_USERBINTRAY_KEY信息。

6. 如何升级?

  • 如果你遵循本文的步骤,版本号在ext中声明即可更换。

整个流程可能需要一天才能完成,但第二次发布会变得相对简单。在这个过程中,遇到问题记得查看日志,逐步排查解决。如果你还是会卡壳,不妨参考相关文档或寻求社区帮助。希望这篇文章能为你的上传过程提供有价值的参考。

转载地址:http://qggyk.baihongyu.com/

你可能感兴趣的文章
elTable火狐浏览器换行
查看>>
15个Python数据处理技巧(非常详细)零基础入门到精通,收藏这一篇就够了
查看>>
2024年全国程序员平均薪资排名:同样是程序员,为什么差这么多?零基础到精通,收藏这篇就够了
查看>>
10个运维拿来就用的 Shell 脚本,用了才知道有多爽,零基础入门到精通,收藏这一篇就够了
查看>>
10款最佳免费WiFi黑客工具(附传送门)零基础入门到精通,收藏这一篇就够了
查看>>
15个备受欢迎的嵌入式GUI库,从零基础到精通,收藏这篇就够了!
查看>>
15个程序员常逛的宝藏网站!!从零基础到精通,收藏这篇就够了!
查看>>
2023最新版Node.js下载安装及环境配置教程(非常详细)从零基础入门到精通,看完这一篇就够了
查看>>
2024大模型行业应用十大典范案例集(非常详细)零基础入门到精通,收藏这一篇就够了
查看>>
2024年全球顶尖杀毒软件,从零基础到精通,收藏这篇就够了!
查看>>
2024年度“金智奖”揭晓:绿盟科技获双项大奖,创新驱动网络安全新高度。从零基础到精通,收藏这篇就够了!
查看>>
2024年最流行的十大开源渗透测试工具
查看>>
2024年非科班的人合适转行做程序员吗?
查看>>
2024数字安全创新性案例报告,从零基础到精通,收藏这篇就够了!
查看>>
2024最新科普什么是大模型?零基础入门到精通,收藏这篇就够了
查看>>
2024最火专业解读:信息安全(非常详细)零基础入门到精通,收藏这一篇就够了
查看>>
2025版最新C++快速入门(适合小白)零基础入门到精通,收藏这篇就够了
查看>>
2025版最新一文彻底搞懂大模型 - Agent(非常详细)零基础入门到精通,收藏这篇就够了
查看>>
2025版最新关于HW护网行动的一些知识,零基础入门到精通,收藏这篇就够了
查看>>
2025版最新大模型开发流程(非常详细)零基础入门到精通,收藏这一篇就够了
查看>>