使用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文件
在project文件夹的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文件前。仅仅须要在project文件夹下运行命令:gradlew uploadArchives
就可以生成上传至以github作为maven仓库的所需文件。
然后把在第二步clonerepo选择的文件夹中更新的文件push到github上。就可以完毕公布。
2、公布jar文件
通过下面命令将本地的jar包安装到此文件夹下:
mvn install:install-file -DgroupId=com.ione -DartifactId=demo -Dversion=1.0 -Dfile=E:\dev\libs\com.ione.demo.jar -Dpackaging=jar -DgeneratePom=true -DlocalRepositoryPath=E:\dev\workspace\ione\mvn-repo-ione\repository -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文件
在project的build.grade 文件里加入:
repositories {
jcenter()
maven { url "https://raw.githubusercontent.com/ione/mvn-repo-ione/master/repository" }
}
dependencies {
compile 'com.ione:demo:1.0'
}
就可以完毕集成。