使用Android Studio开发的用户,都希望通过maven远程仓库的方式来集成jar、aar文件,但是这些文件时如何发布的呢?
通常开发者都会将jar文件发布到sonatype上,以提供给其他开发者集成,但是sonatype要求必须提供源码,而有些情况下,发布者并不想提供源码,这样可以使用本文介绍的方法。
下面就为大家讲解如何在github上创建仓库,将jar和aar文件发布到maven中,以及如何集成。
第一步:
在github.com 上创建一个repo,专门用作maven仓库使用。 例如https://github.com/ione/mvn-repo-ione
第二步:
使用git clone 命令将文件clone到本地。
第三步:
1、发布aar文件
在工程目录的build.gradle
文件中添加:
- apply plugin: 'maven'
- android{
- // ...
- }
- // ext is a gradle closure allowing the declaration of global properties
- ext {
- PUBLISH_GROUP_ID = 'com.ione'
- PUBLISH_ARTIFACT_ID = 'demo'
- PUBLISH_VERSION = android.defaultConfig.versionName
- }
- uploadArchives {
- repositories.mavenDeployer {
- def deployPath = file(getProperty('aar.deployPath'))
- repository(url: "file://${deployPath.absolutePath}")
- pom.project {
- groupId project.PUBLISH_GROUP_ID
- artifactId project.PUBLISH_ARTIFACT_ID
- version project.PUBLISH_VERSION
- }
- }
- }
其中aar.deployPath
可在gradle.properties
文件中指定:
- aar.deployPath=E:\dev\workspace\mvn-repo-ione\repository
路径为第二步clone repo选择的目录。
发布aar文件前,只需要在工程目录下执行命令:
- gradlew uploadArchives
即可生成上传至以github作为maven仓库的所需文件。然后把在第二步clonerepo选择的目录中更新的文件push到github上,即可完成发布。
2、发布jar文件
通过以下命令将本地的jar包安装到此目录下:
- mvn install:install-file -DgroupId=com.ione -DartifactId=demo -Dversion=1.0 -Dfile=E:devlibscom.ione.demo.jar -Dpackaging=jar -DgeneratePom=true -DlocalRepositoryPath=E:devworkspaceionemvn-repo-ione epository -DcreateChecksum=true
注意包名和路径
运行上述命令后在本地目录下就有了需要的maven文件, 例如:
- mvn-repo-demogit:(master) tree
- .
- ├── LICENSE
- ├── README.md
- └── repository
- └── com
- └── ione
- └── demo
- ├── 1.0
- │ ├── demo-1.0.jar
- │ ├── demo-1.0.jar.md5
- │ ├── demo-1.0.jar.sha1
- │ ├── demo-1.0.pom
- │ ├── deno-1.0.pom.md5
- │ └── demo-1.0.pom.sha1
- ├── maven-metadata-local.xml
- ├── maven-metadata-local.xml.md5
- └── maven-metadata-local.xml.sha1
- 5 directories, 11 files
然后通过git push 将生成的maven 文件push 到github 上去,即可完成发布。
第四步:
在Android Studio中集成jar文件或者aar文件
在工程的build.grade 文件中添加:
- repositories {
- jcenter()
- maven { url "https://raw.githubusercontent.com/ione/mvn-repo-ione/master/repository" }
- }
- dependencies {
- compile 'com.ione:demo:1.0'
- }
即可完成集成。