如果自己开发的库想给别的项目用,需要把自己的库打包后上传到maven,最后每个项目只要依赖maven库就可以集成,maven插件已经过时,官方推荐使用maven-publish插件来实现将我们的代码发布到 Apache Maven仓库的功能。
apply plugin: 'maven-publish'
所有以下任务都归在名为publishing类型为PublishingExtension的扩展下。
publishing {
repositories {
maven {
// 基于版本名称选择不同的仓库地址
def releasesRepoUrl = "$buildDir/repos/releases"
def snapshotsRepoUrl = "$buildDir/repos/snapshots"
// url是必须要配置的
url = version.endsWith('SNAPSHOT') ? snapshotsRepoUrl : releasesRepoUrl
// 仓库用户名密码
credentials {
username = "root"
password = "root"
}
}
}
}
apply plugin: 'maven-publish'
// debug仓库
def SNAPSHOT_REPOSITORY_URL = '$buildDir/repository/maven-snapshots/'
// release仓库
def RELEASE_REPOSITORY_URL = '$buildDir/repository/maven-releases/'
// maven 账户
def REPOSITORY_USER_NAME = 'username'
def REPOSITORY_USER_PSW = 'password'
afterEvaluate {
publishing {
publications {
// Creates a Maven publication called "release".
release(MavenPublication) {
from components.release
groupId = POM_GROUP_ID
artifactId = POM_ARTIFACT_ID
version = VERSION_NAME
pom {
name = POM_NAME
description = POM_DESCRIPTION
url = POM_SCM_URL
licenses {
license {
name = 'The Apache License, Version 2.0'
url = 'http://www.apache.org/licenses/LICENSE-2.0.txt'
}
}
developers {
developer {
id = POM_DEVELOPER_NAME
name = POM_DEVELOPER_NAME
}
}
scm {
url = POM_SCM_URL
connection = ""
developerConnection = ""
}
}
}
}
repositories {
maven {
url = VERSION_NAME.endsWith('SNAPSHOT') ? SNAPSHOT_REPOSITORY_URL : RELEASE_REPOSITORY_URL
credentials {
username = REPOSITORY_USER_NAME
password = REPOSITORY_USER_PSW
}
}
}
}
}