GVKun编程网logo

Android Library 发布开源库 JCenter & JitPack 攻略(安卓开源库)

2

在本文中,我们将详细介绍AndroidLibrary发布开源库JCenter&JitPack攻略的各个方面,并为您提供关于安卓开源库的相关解答,同时,我们也将为您带来关于5分钟用Jitpack发布开源

在本文中,我们将详细介绍Android Library 发布开源库 JCenter & JitPack 攻略的各个方面,并为您提供关于安卓开源库的相关解答,同时,我们也将为您带来关于5 分钟用 Jitpack 发布开源库、@schematics/angular:library VS @nrwl/angular:library、Android Gradle 错误:无法下载 library-1.8.aar (com.nbsp:library:1.8)、android jitpack maven管理的有用知识。

本文目录一览:

Android Library 发布开源库 JCenter & JitPack 攻略(安卓开源库)

Android Library 发布开源库 JCenter & JitPack 攻略(安卓开源库)

 

对于Android 的开源库,一般通过 JCenter 或者 JitPack 发布开源。两种方式均可~

当你造了一个好玩有用的东西想要分享给大家时,开源出来便是一种好方式~

一、 上传开源库到 JCenter

1、准备工作

步骤1:注册Bintray账号

  • 注册地址
  1. 尽量不要在官网注册,因为官网注册的是企业版,我们需要的是个人版
  2. 直接关联 Github账号进行注册 & 登录(建议)

PS:如果Github账户使用了QQ邮箱,163邮箱等可能会无法注册,可以尝试给Github账户 增加一个邮箱例如 Gmail

步骤2:在Bintray上建立仓库

  1. 在个人中心点击 Add New Repository
  2. Name 框填写 仓库名;Type 框 选择 maven
  3. 点击 Create,完成创建

步骤3:在代码项目中创建Module文件夹

  • 步骤如下

    Android Studio中

    1. File --> New Module -> Android Library(注意主项目的Project名不要和Library相同,可能会冲突)
    2. 创建成功后,你会发现Module文件夹的结构和 原有的项目文件夹(app)非常类似

步骤4:将需要上传的代码存放到Module文件中

  • 本文 以上传一个 自定义View 为例子
  • 该自定义View代码包括:1个类文件

    在这里插入图片描述

步骤5:将整个项目上传到 Github


2、配置与上传

步骤1:配置 bintray-release 插件

  • Library ModuleGradle文件中配置

    在这里插入图片描述

//Library  build.gradle
    
apply plugin: 'com.novoda.bintray-release' // 添加bintray插件


publish {
    userOrg = 'dmingou'             // Bintray用户名
    repoName = 'AnimatedFloatingButton'          // Bintray上的新建的仓库名(Repository)
    groupId = 'qg.odm'        // 依赖名 implemention 'x:y:z'中的包名x
    artifactId = 'AnimatedFloatingButton'        // 依赖名implemention 'x:y:z'中的项目名y
    publishVersion = '1.0.0'          // 依赖名implemention 'x:y:z'中的版本号z
    desc = 'XXXXXXXX'       		// 对该开源组件的说明
    website = 'https://github.com/DMingOu/AnimatedFloatingButton'  // VCS地址
}

注意:尽量保持你的library module的名字同artifactId一样

原因:Bintray上,你的项目的 maven-Metadata.xml 文件的路径 为 gruopId+"/"+module名称。

​ 假设你的groupId=qg.odm,artifactId是AnimatedFloatingButton,但module名称是AnimatedFloatingButtonLibrary。
​ 此时,项目文件在qg.odm.animatedfloatingbuttondemo目录下的,但maven-Metadata.xml文件却是在qg.odm/AnimatedFloatingButtonLibrary目录下的,可能会有冲突。

冲突:若你有多个项目groupId一样 & artifactId不一样,但module名称都是library的话,maven-Metadata.xml文件的地址可能会一样,即都是:gruopId+"/"+module名称,那么就可能产生冲突。

解决方案:保持module名称和artifactId一致。

  • 在该项目的Gradle文件中配置

在这里插入图片描述

使用插件前应该看下最新版本 Bintray-release 的github地址

//Project  build.gradle
classpath 'com.novoda:bintray-release:0.9.2'

allprojects {
    tasks.withType(Javadoc) {
        options.addStringOption('Xdoclint:none', '-quiet')
        options.addStringOption('encoding', 'UTF-8')
    }
}
allprojects {
    tasks.withType(Javadoc) {
        options{
            encoding "UTF-8"
            charSet 'UTF-8'
            links "http://docs.oracle.com/javase/7/docs/api"
        }
    }
}

步骤2:上传项目到JCenter中

  • AndroidStudioTerminal输入以下命令
// 每行命令均用空格隔开,此处是为了展示才会分行

<-- Windows版本 -->
gradlew.bat clean build bintrayUpload 
 -PbintrayUser=UserName  // Bintray用户名
 -PbintrayKey=*********  // Bintray上的API key
 -PdryRun=false

<-- Mac版本 -->
./gradlew clean build bintrayUpload 
 -PbintrayUser=carson-ho 
 -PbintrayKey=***************************** 
 -PdryRun=false
//一行命令直接在Terminal执行,例子如下
gradlew clean build bintrayUpload -PbintrayUser=dmingou -PbintrayKey=610e0e8f022cb3f353908e083932167bd0ff -PdryRun=false
  • 注:获取API Key(需回到 Jcenter 网站)

在这里插入图片描述

  • 上传成功提示如下:

img

  • 注:一般来说不会一次成功,可能出错的问题(坑),详情拉到末尾总结

  • 到这一步,你已经将项目上传到 JCenter了,可进入查看到 Package 已被添加进去

在这里插入图片描述

步骤3:添加到JCenter

  • 请按照以下步骤真正添加该项目到JCenter
    1. 进入仓库–>点击对应Package–>点击右上方的 Actions --> 选择 Add to JCenter
    2. 在弹出的对话框中添加 对提交内容的备注,简单描述即可
  • 提交申请后,需要等待 管理员审核通过(x小时),会以 站内私信方式通知

在这里插入图片描述

  • 收到官方的通知,说明别人就可直接通过 添加你的依赖 来引用你的 Library 了!

3、查看如何依赖

在对应的 Package 页点击对应的版本号,在Maven Info中可以查看

在这里插入图片描述


在这里插入图片描述

4、版本更新

当需要进行Android Library版本更新时,只需要以下2个步骤:

步骤1:在该Library ModuleGradle文件中的配置2中 重新配置版本号,其他的都不用更改!!

在这里插入图片描述

步骤2:重新执行上传代码

AndroidStudioTerminal输入以下命令

//一行命令直接在Terminal执行,例子如下
gradlew clean build bintrayUpload -PbintrayUser=dmingou -PbintrayKey=610e0e8f022cb3f353908e083932167bd0ff -PdryRun=false

等待一定时间,就可以看到 Bintray网站上更新了Android Library的新版本。

5、上传到 Bintray 时遇到的坑

MacOS可能出现的坑

// 错误日志:说明权限有问题
bash: ./gradlew: Permission denied

// 解决方案:获得权限,直接在终端输入以下命令
chmod +x gradlew

坑:Could not publish XXXX HTTP/1.1 404 Not Found [message:Package ‘XXXX’ was not found]

研究一番,类似的错误还有 **Not Found Repo …**网上回答清一色是说配置中写错了或者检查下空格问题。然后我认真检查发现无错后,我直接按原来的命令,再次执行,然后居然就 Build Successful 了,有点玄学

坑:Please fix the following before submitting a JCenter inclusion request:Add a POM file to the latest version of your package

bintray网站,Package上传成功后,点击“add to jcenter”按钮时,提示以上信息。

  • 上传到bintray的命令行
gradlew clean build bintrayUpload -PbintrayUser=BINTRAY_USERNAME -PbintrayKey=BINTRAY_KEY -PdryRun=false
  • 其实上面的命令行可以分解为2个task:
gradlew clean build
gradlew bintrayUpload.........
  • 点击“add to jcenter”时提示的异常信息,意思是上传的最新版本里面缺少了pom文件,而通过bintray-release插件上传,执行命令时如果没有生成,则需要我们手动生成
gradlew clean build bintrayUpload...

解决办法就是手动执行task。那什么时候执行?怎么执行呢?

步骤1、什么时候执行?

在gradlew clean build 和 gradlew bintrayUpload… 两个Task之间执行;

步骤2、怎么执行?

首先在android studio 中打开gralde task视图,先后右击run运行下面的两个Task即可;

在这里插入图片描述

执行完以后,对应module下的build目录会生成对应的pom文件

再按照如上操作,然后再去官网点击“add to jcenter”按钮即可顺利进入申请界面

二、发布开源库到 JitPack

准备工作

在Github上传需要开源的项目,与 上传JCenter步骤中的准备工作对项目代码的操作类似。

参照 上传JCenter开源 的 准备工作的 步骤3,步骤4,步骤5

步骤一、在项目的build.gradle添加插件android-maven-gradle-plugin

classpath ‘com.github.dcendents:android-maven-gradle-plugin:2.1’

PS:jitpack的android-maven-gradle-plugin版本要和gradle版本对应。具体的对应呢?查看官方说明~~

如下图:

在这里插入图片描述

步骤二、配置library的build.gralde

在library的 build.gradle中添加代码

// JitPack Maven
apply plugin: 'com.github.dcendents.android-maven'
// 其中username需要替换为你在github上的用户名
group='com.github.username'

如下图所示:

在这里插入图片描述

修改后的部分要提交到github上去!!

步骤三、创建release版本

1、打开项目的github主页,创建一个Release或Tag

在这里插入图片描述

2、填写发布内容
  1. 填写你要发布的release代码库的版本(重要)
  2. 标题名字,一般填写开源库的名字
  3. 本次release提交的描述
  4. 点击 Publish relsease 按钮

在这里插入图片描述

3、发布成功后可查看到记录

在这里插入图片描述

步骤四、提交到 JitPack

1、将Github项目的仓库提交到 JitPack

绑定了账户后,可以在左方的 Repositories栏挑选;也可以在输入框中填入 发布release的项目地址

Log栏是绿色,代表OK,点击 Get It 按钮,版本提交完成后,JitPack会自动生成引用该library的配置信息:

在这里插入图片描述

2、在下方可以看到如何引用依赖你刚发布的代码库了

在这里插入图片描述

在项目依次添加这两处,就可以使用发布的代码库了

 

谢谢阅读的同学~,希望文章能对您有用

5 分钟用 Jitpack 发布开源库

5 分钟用 Jitpack 发布开源库

高春辉、王春生、朱峰:关于开源创业的 15 件小事

 

 

项目开发中会用到很多开源库,
他们一般通过 Maven/Gradle 依赖进来的.

演而优则唱,开发越来越溜以后,你是否也蠢蠢欲动,想发布自己的库呢.

下面介绍怎么通过 Jitpack 进行发布 Github 代码,
真的非常非常简单,几分钟搞定~

为什么用 Jitpack

现在 Maven 的两个主要仓库是:

1)Maven center
2)jcenter

他们使用面很广,家大业大,所以带来的相应的问题:

1) 发布过程比较麻烦,需要验证和审核
2) 发布的时候需要 Group 唯一,这个 group 得是一个域名。而现在很多开发者没有自己的域名.

用 Jitpack 就没有这些烦恼了,利用 Github 地址做自己域名,发布配置也非常简单,不需要验证.

话不多说,来看看怎么搞.

步骤 1: 新建 Lib 工程

在 AndroidStudio 中新建 Android Library 工程,结构如下

 

解释:

1. 在项目的 build.gradle 的 buildscript 添加 jitpack 编译插件

 buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath ''com.android.tools.build:gradle:2.1.3''
        //添加jitpack依赖
        classpath ''com.github.dcendents:android-maven-gradle-plugin:1.5''
    }
}

2. 在 library 的 build.gradle 中添加 jitpack 配置信息

//启用Jitpack 插件
apply plugin: ''com.github.dcendents.android-maven''

//设置Jitpack发布的Group
//我的github账号是helen-x, 对应我的group就是com.github.helen-x
group=''com.github.helen-x''

步骤 2: Github 上发布代码

1. 上面代码发布到 Github

2. 发布代码 (Release/TAG)

找到对应项目,进入 release 页面

进入 release 以后,进行代码发布.
发布的时候可以用 Releases 也可以用 Tags.

填写发布信息后,就可以发布了

步骤 3: Jitpack 发布

进入 Jitpack link.

1. 填写仓库名称
2. 搜索
3. 使用 "Get", 发布就成功啦~~

发布成功后,会列出仓库的地址信息,别人利用这个坐标就可以用我们的开源库啦.
比如,我的 demo 发布后的地址是: com.github.helen-x:JitpackReleaseDemo:0.1

步骤 4: 使用我们的开源库

1. 在 build.gradle 中加入 Jitpack 仓库

allprojects {
        repositories {
            ...
            maven { url ''https://jitpack.io'' }
        }
    }

2. 使用我们开源库

    dependencies {
            compile ''com.github.helen-x:JitpackReleaseDemo:0.1''
    }  

拓展

可以在仓库的 readme.md 中加入
[![](https://jitpack.io/v/helen-x/JitpackReleaseDemo.svg)](https://jitpack.io/#helen-x/JitpackReleaseDemo)

就会自动会有一个 Jitpack 的 bar, 效果如下,瞬间显得很高端有木有~

 

 

更多文章请关注公众号



作者:菜刀文
链接:https://www.jianshu.com/p/772f01c272dd
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

@schematics/angular:library VS @nrwl/angular:library

@schematics/angular:library VS @nrwl/angular:library

如何解决@schematics/angular:library VS @nrwl/angular:library

我想通过使用 Nx 控制台工具向我现有的 angualr 应用程序添加一个新的功能模块,但我很困惑我应该使用以下哪一个来做到这一点:

  • ng 生成@schematics/angular:library
  • ng 生成@nrwl/angular:library

我搜索了很多,但没有找到答案。

Android Gradle 错误:无法下载 library-1.8.aar (com.nbsp:library:1.8)

Android Gradle 错误:无法下载 library-1.8.aar (com.nbsp:library:1.8)

如何解决Android Gradle 错误:无法下载 library-1.8.aar (com.nbsp:library:1.8)

我突然收到此错误:

  1. Unable to resolve dependency for '':app@debugAndroidTest/compileClasspath'': Could not download library-1.8.aar (com.nbsp:library:1.8)
  2. Show Details
  3. Affected Modules: app

这是我的应用程序 gradle 文件:

  1. android {
  2. compileSdkVersion 30
  3. defaultConfig {
  4. applicationId "..."
  5. minSdkVersion 21
  6. targetSdkVersion 30
  7. versionCode 1
  8. versionName "1.0"
  9. testInstrumentationRunner ''androidx.test.runner.AndroidJUnitRunner''
  10. multiDexEnabled true
  11. }
  12. buildTypes {
  13. release {
  14. minifyEnabled false
  15. proguardFiles getDefaultProguardFile(''proguard-android.txt''),''proguard-rules.pro''
  16. }
  17. }
  18. dependencies {
  19. implementation ''com.nbsp:library:1.8''
  20. implementation ''com.android.volley:volley:1.2.0''
  21. implementation ''androidx.appcompat:appcompat:1.3.0''
  22. implementation ''androidx.constraintlayout:constraintlayout:2.0.4''
  23. implementation ''com.google.android.material:material:1.3.0''
  24. testImplementation ''junit:junit:4.12''
  25. androidTestImplementation ''androidx.test.ext:junit:1.1.2''
  26. androidTestImplementation ''androidx.test.espresso:espresso-core:3.3.0''
  27. }

昨天运行良好,但今天当我打开 Android Studio 时,出现此错误。 我已经搜索过,但没有找到解决方案。我不知道为什么它会向我显示这个,显示详细信息链接也不起作用。

解决方法

这似乎对我有用:我替换了

  1. implementation ''com.nbsp:library:1.8''

  1. implementation ''com.nbsp:materialfilepicker:1.9.1''

library:1.8 被 MaterialFilePicker 使用,但是当我去他们的 github 时我看到他们用 materialfilepicker:1.9.1

而且我还必须在 gradle 文件中添加以下 compileOption:

  1. android {
  2. .....................
  3. compileOptions {
  4. sourceCompatibility 1.8
  5. targetCompatibility 1.8
  6. }
  7. }

还有构建->清理项目,然后重建项目

android jitpack maven管理

android jitpack maven管理

根gradle

dependencies {
        classpath 'com.android.tools.build:gradle:3.3.1'
        //maven 插件
        classpath 'com.github.dcendents:android-maven-gradle-plugin:2.1'
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }

library gradle

apply plugin: 'com.github.dcendents.android-maven'
group='com.github.caoyangfei'

多个library会生成

点击跳转使用


使用方式


注:在使用中发现如果代码没更改,升级版本后,使用时还会下载下来旧版本。(可能理解有误)

今天关于Android Library 发布开源库 JCenter & JitPack 攻略安卓开源库的分享就到这里,希望大家有所收获,若想了解更多关于5 分钟用 Jitpack 发布开源库、@schematics/angular:library VS @nrwl/angular:library、Android Gradle 错误:无法下载 library-1.8.aar (com.nbsp:library:1.8)、android jitpack maven管理等相关知识,可以在本站进行查询。

本文标签: