添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
task sourcesJar(type: Jar){ from android.sourceSets.main.java.srcDirs archiveClassifier.set("sources") // 发布文档 task javadocJar(type: Jar){ from android.sourceSets.main.java.srcDirs archiveClassifier.set("javadoc") afterEvaluate { publishing { publications { release(MavenPublication) { from components.release artifact sourcesJar artifact javadocJar groupId = groupId artifactId = artifactId version = version repositories { maven { def releaseRepoUrl = "http://192.168.1.110:8081/repository/maven-releases/" def snapshotsRepoUrl = "http://192.168.1.110:8081/repository/maven-snapshots/" url = version.endsWith('SNAPSHOT') ? snapshotsRepoUrl : releaseRepoUrl allowInsecureProtocol(true) credentials { username = "admin" password = "admin123"

方式二(推荐)

复制上传模板到项目根目录。

修改模板中的group(可选)

修改模板中的仓库地址(可选)

子模块中的 build.gradle 添加 maven-publish 插件

plugins {
	id 'com.android.library'
	id 'maven-publish'

添加版本号
version = '1.0.0'

apply from: '../uploadArchive.gradle'

二、引用私有仓库的依赖

根目录中的 settings.gradle 添加 maven私有仓库地址

dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        maven {
            url 'http://192.168.1.XXX:8181/repository/maven-releases/'
            allowInsecureProtocol(true)
        google()
        mavenCentral()

项目中的 build.gradle 添加引用依赖

dependencies {
    implementation 'com.alibaba:fastjson:2.0.22'

三、方式一完整配置示例

//apply plugin: 'maven-publish'
plugins {
    id "maven-publish"
groupId = 'com.example.android'
artifactId = 'demo'
version = '1.0.0'
// 发布源码
task sourcesJar(type: Jar){
    from android.sourceSets.main.java.srcDirs
    archiveClassifier.set("sources")
// 发布文档
task javadocJar(type: Jar){
    from android.sourceSets.main.java.srcDirs
    archiveClassifier.set("javadoc")
afterEvaluate {
    publishing {
        publications {
            release(MavenPublication) {
                from components.release
                artifact sourcesJar
                artifact javadocJar
                groupId = groupId
                artifactId = artifactId
                version = version
                pom {
                    name = 'My Library'
                    description = 'A concise description of my library'
                    url = 'http://www.example.com/library'
                    properties = [
                        myProp: "value",
                        "prop.with.dots": "anotherValue"
                    licenses {
                        license {
                            name = 'The Apache License, Version 2.0'
                            url = 'http://www.apache.org/licenses/LICENSE-2.0.txt'
                    developers {
                        developer {
                            id = 'dev'
                            name = 'developer'
                            email = '[email protected]'
                    scm {
                        connection = 'scm:git:git://example.com/my-library.git'
                        developerConnection = 'scm:git:ssh://example.com/my-library.git'
                        url = 'http://example.com/my-library/'
        repositories {
            maven {
                def releaseRepoUrl = "http://192.168.1.XXX:8181/repository/maven-releases/"
                def snapshotsRepoUrl = "http://192.168.1.XXX:8181/repository/maven-snapshots/"
                url = version.endsWith('SNAPSHOT') ? snapshotsRepoUrl : releaseRepoUrl
                allowInsecureProtocol(true)
                credentials {
                    username = "admin"
                    password = "admin123"

uploadArchive.gradle 源码:

group = "com.example.android"
def releaseRepoUrl = "http://192.168.1.XXX:8181/repository/maven-releases/"
def snapshotsRepoUrl = "http://192.168.1.XXX:8181/repository/maven-snapshots/"
// 发布源码
task sourcesJar(type: Jar){
    from android.sourceSets.main.java.srcDirs
    archiveClassifier.set("sources")
// 发布文档
task javadocJar(type: Jar){
    from android.sourceSets.main.java.srcDirs
    archiveClassifier.set("javadoc")
afterEvaluate {
    publishing {
        publications {
            release(MavenPublication) {
                from components.release
                groupId = group
                artifactId = project.name
                version = version
                pom {
                    name = project.name
                    description = 'Android SDK Library'
                    url = 'http://www.myandroid.com/library'
        repositories {
            maven {
                url = version.endsWith('SNAPSHOT') ? snapshotsRepoUrl : releaseRepoUrl
                allowInsecureProtocol(true)
                credentials {
                    username = "admin"
                    password = "admin123"