如何添加jcenter仓库 gradle依赖

如何添加jcenter仓库 gradle依赖,第1张

在构建中加入Ivy仓库 我们可以通过URL地址或本地文件系统地址,将Ivy仓库加入到我们的构建中。 如果想通过URL地址添加一个Ivy仓库,我们可以将以下代码片段加入到build.gradle文件中: 1 2 3 4 5 repositories { ivy { url

要回答这个问题,我们要了解一个公司,叫做jfog,它有个网站是Bintray,这个网站类似于github,但关注的领域不一样,github管理的是文本文件,而Bintray专注于管理二进制文件,个人感觉有些类似yy和qq的关系。扯回来,我们今天的主人公Jcenter就存放在Bintray网站里,Bintray下有名的库可不止Jcenter只一个,rpm-center,rubyinstaller都是它里面的仓库。所以,如果我们想把自己的开源库存放在Jcenter上供其它人使用,主要步骤如下:

我们需要注册Bintray账号,然后上传我们的项目到Bintray,最后在Bintray里提交我们的项目,管理员会对项目审核,通过后我们就可以在Gradle里通过制定远程位置来使用自己的库了。好,Let Go!

注册Bintray账号

Bintray官网传送门:https://bintray.com/

但很遗憾的是这个网站国内访问有点尴尬,你需要翻墙才可以。

Bintray是支持Github登陆的,也比较推荐在这种方式,(这里我真的想吐槽下某些sb网站做的连排泄物都不如,通过第三方登陆像还得重新注册!还得手机验证,这种网站必须拉黑)

登陆之后我们需要两个参数,一个是我们的用户名,另外一个就是api key,api key的获取可以参照我下面的gif图片:

先记得这两个数据的获取方式,一会我们会用到。

上传自己的Library到Bintray

关于怎样使用Android Studio创建Library这里就不多讲,这里假设我们有一个自己将要上传到Binray,我这里的Library很简单,简单到不需要res文件,是我编写和整理的和Android相关的工具类,我把这个Librasy命名为utils,整个Library目录结构如下:

接下里的步骤比较繁琐,Gradle已经支持通过命令来上传Library到Bintray,但项目的相关信息需要在gradle的配置文件中制定,首先我们需要打开utils这个module下的build.gradle文件,将其替换如下:

apply plugin: 'com.android.library'apply plugin: 'com.github.dcendents.android-maven'apply plugin: 'com.jfrog.bintray'// 这个version是区分library版本的,因此当我们需要更新library时记得修改这个versionversion = "1.0.0"android {compileSdkVersion 21buildToolsVersion "21.1.1"resourcePrefix "随便填"defaultConfig {minSdkVersion 9targetSdkVersion 21versionCode 1versionName version}buildTypes {release {minifyEnabled falseproguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'}}}dependencies {compile fileTree(dir: 'libs', include: ['*.jar'])}def siteUrl = 'https://github.com/saymagic/AndroidUtils' // 项目的主页def gitUrl = 'https://github.com/saymagic/AndroidUtils.git' // Git仓库的urlgroup = "cn.saymagic" // Maven Group ID for the artifact,一般填你唯一的包名install {repositories.mavenInstaller {// This generates POM.xml with proper parameterspom {project {packaging 'aar'// Add your description herename 'Android Commonly used utils' //项目描述url siteUrl// Set your licenselicenses {license {name 'The Apache Software License, Version 2.0'url 'http://www.apache.org/licenses/LICENSE-2.0.txt'}}developers {developer {id 'saymagic' //填写开发者基本信息name 'saymagic'email 'cymmagic@gmail.com'}}scm {connection gitUrldeveloperConnection gitUrlurl siteUrl}}}}}task sourcesJar(type: Jar) {from android.sourceSets.main.java.srcDirsclassifier = 'sources'}task javadoc(type: Javadoc) {source = android.sourceSets.main.java.srcDirsclasspath += project.files(android.getBootClasspath().join(File.pathSeparator))}task javadocJar(type: Jar, dependsOn: javadoc) {classifier = 'javadoc'from javadoc.destinationDir}artifacts {archives javadocJararchives sourcesJar}Properties properties = new Properties()properties.load(project.rootProject.file('local.properties').newDataInputStream())bintray {user = properties.getProperty("bintray.user")key = properties.getProperty("bintray.apikey")configurations = ['archives']pkg {repo = "maven" //发布到Bintray的那个仓库里,默认账户有四个库,我们这里上传到maven库name = "utils" //发布到Bintray上的项目名字websiteUrl = siteUrlvcsUrl = gitUrllicenses = ["Apache-2.0"]publish = true}}

注意里面的信息需要按照自己的个人资料进行修改。

因为上述的文件里需要依赖一些其它的库,所以接下来再到我们项目最外层build.gradle文件里,添加如下两个依赖

classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.0'classpath 'com.github.dcendents:android-maven-plugin:1.2'

修改后的文件如下:

buildscript {repositories {jcenter()}dependencies {classpath 'com.android.tools.build:gradle:1.0.0'classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.0'classpath 'com.github.dcendents:android-maven-plugin:1.2'// NOTE: Do not place your application dependencies herethey belong// in the individual module build.gradle files}} allprojects {repositories {jcenter()}}

最后,我们在打开项目最外层的local.properties文件,添加如下两行:

bintray.user=your_user_namebintray.apikey=your_apikey

your_user_name和your_apikey这两个数据就是我们在第一步注册Bintray时提到的两个参数,

解析来,在项目的根目录下执行

gradle build

这样,我们就可以到到我们的module下会生成如下目录:/build/outputs/aar/

在arr目录下有如下两个文件:

以arr文件结尾的就是Gradle将我们的library打包成的二进制文件,别忘记了,Bintray就是用于存储二进制文件的仓库,所以执行下面的命令。就可以将我们的library上传到Bintary。

gradle bintrayUpload

上传成功之后,就会在bintray的maven仓库下看到我们上传的Library:

提交项目到Jcenter

我们点开我们刚刚提交项目的主页,点击右下角的add to jcenter按钮

接下来写一些评论:

点击send后就可以等管理员的审核了。

大概一小时后,管理员就会审核通过:

这样,我们就可以在Dependence里这样来引用我们自己的项目了:

dependencies { compile 'cn.saymagic.utils:utils:1.0.0'}

1.在AndroidStudio中导入Library项目1启动AndroidStudio后,打开你需要接收Library的项目。比如有两个项目,项目A,和Library项目B,那么打开项目A。图中所示为项目的结构图,点击右上角的File菜单。2在下拉菜单中依次找到New——ImportModule,点击打开项目导入窗口。注意导入的是Module而不是Project,如果是Project的话AndroidStudio会自动打开一个新的窗口编辑,那样的话就是不Library了。3在打开的窗口中点击右侧的""浏览窗口,在文件夹窗口中找到你要导入的Library项目的位置,选择后点击底部的OK按钮导入。4导入窗口中显示了该Module(项目)的详细信息,点击Finish完成导入。需要注意的是导入到AndoridStudio项目中的Library也必须是AndroidStudio项目,不能是Eclipse项目,如果是Eclipse项目的话,需要选择导出AndroidStudio项目。5在项目首页中选择Project标签,可以看到项目的文件结构图中多出了我们刚才导入的项目。Library的导入就完成了,接下来的步骤中需要把这个Library项目添加到原项目中,才能正常的引用Librara项目中的内容。END2.把Library项目添加到源项目中点击顶部左上角的File菜单,在出现的下拉菜单中找到ProjectStructure,点击进入。在窗口左侧选择原始的项目后,点击右侧的Dependencies(依赖项)。可以看到项目当前引用的jar包等信息。点击右侧的“+”添加按钮,在下拉菜单中找到ModuleDependency(项目依赖),点击打开项目选择窗口。选择前面步骤中导入的Library项目后,点击OK按钮导入到原始项目中。原始项目的依赖项中就出现了导入的Libray项目,这时在项目中就能正确引用Library项目中的内容了,点击底部的OK按钮完成添加。出现是否更新CVS文件的提示窗口的话,点击Yes进行进行更新和确认。项目进入到Gradle自动构建的环节。构建完成后点击底部的Messages,选中GradleBuild。在里面提示了BUILDSUCCESSFUL,说明项目构建完成。这时Library项目就导入到原始项目完毕,可以在项目中正常引用Library项目中的内容了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11414854.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存