大家好!
我们经常看见一些开源库放在MavenCentral, JCenter等仓库上,但是对于一些现有的库例如公司的库和工具,有没有类似的处理方法?
当然,你可能知道一些私有的仓库,例如(Nexus, Archiva),但是,有时候,你可能没有时间去接触公司的基础架构,比方说,你在一家PHP公司做android开发,还有很多事要做。
就只有这些了吗?是的,因为如果你使用过像Github或者Bitbucket这样的Git仓库,当你开始使用Maven库的时候将会如鱼得水。很棒,是不是?
Chris Banes 曾经写过一篇介绍使用Gradle将项目发布到Maven上的文章 。
我们来看一下究竟是怎么做的吧!
Note : 如果你只使用一个build.gradle文件,你可以在上面设置任何东西,或者,也可以将他们写入不同的文件,然后用下面一段代码帮助你部署。
apply from: '<path-to-your-file>'
首先要使用Maven插件
apply plugin: 'maven'
然后配置相应的信息(下面是上传到Bitbucket的例子,大写的地方是你项目中对应的属性)
uploadArchives {
configuration = configurations.archives
repositories.mavenDeployer {
pom.groupId = GROUP
pom.artifactId = POM_ARTIFACT_ID
pom.version = VERSION_NAME
configuration = configurations.deployerJar
repository(url: "git:releases://git@bitbucket.org:<bitbucket-username>/<your-repo>.git")
snapshotRepository(url: "git:snapshots://git@bitbucket.org:<bitbucket-username>/<your-repo>.git")
pom.project {
name POM_NAME
packaging POM_PACKAGING
description POM_DESCRIPTION
url POM_URL
scm {
url POM_SCM_URL
connection POM_SCM_CONNECTION
developerConnection POM_SCM_DEV_CONNECTION
}
licenses {
license {
name POM_LICENCE_NAME
url POM_LICENCE_URL
distribution POM_LICENCE_DIST
}
}
developers {
developer {
id POM_DEVELOPER_ID
name POM_DEVELOPER_NAME
email POM_DEVELOPER_EMAIL
}
}
}
}
}
当然,你可以发现deployerJar,我们也需要设置它
首先,我们需要添加依赖Synergian Wagon-Git:
allprojects {
repositories {
mavenCentral()
maven { url "https://raw.github.com/synergian/wagon-git/releases"}
}
}
&
dependencies {
deployerJar "ar.com.synergian:wagon-git:0.2.3"
}
然后,下一步需要说明如下配置
configurations {
deployerJar
}
现在,你可以部署了:
$ gradle [clean build] uploadArchives
And … you’re done !
你完成了!
当然,现在你可以发布你的库(不论私有与否)托管到Bitbucket上(或其他)的对应仓库上,这很容易做到:
allprojects {
repositories {
mavenCentral()
maven {
url "https://api.bitbucket.org/1.0/repositories/<bitbucket_username>/<bitbucket-repository>/raw/snapshots"
credentials {
username REPOSITORY_USERNAME
password REPOSITORY_PASSWORD
}
}
maven {
url "https://api.bitbucket.org/1.0/repositories/<bitbucket_username>/<bitbucket-repository>/raw/releases"
credentials {
username REPOSITORY_USERNAME
password REPOSITORY_PASSWORD
}
}
}
}
当然,最好不要在那些需要提交的build.gradle文件里设置您的凭据,但是,你可以在你的gradle.properties设置。其中最好的办法是将是有一个专门的账户来获取你的库,他只有库的读取权限。顺便说一下,发现证书只有在使用私有库的时候才会用到。
然后,像平常一样添加依赖,就可以使用你的库了:
dependencies {
compile "GROUP-ID:ARTIFACT-ID:VERSION"
}
你会在Github上找到deploy.gradle文件。
就是这样;-)
Copyright© 2013-2019