【Android Gradle 插件】将自定义 Gradle 插件上传到自建 Maven 仓库 ③ ( 配置上传工件 | 将 Gradle 插件 jar 包、源码、文档上传到本地Maven 仓库 )

Android Plugin DSL Reference 参考文档 :





一、配置 artifacts 工程工件



在前两篇博客

中 , 分别使用 自定义 Jar 类型 Gradle 任务插件源码插件文档 打包到了 jar 包中 ;

在这里插入图片描述

artifacts 配置 , 是用于配置 工程工件 对应的 jar 包产出 配置 ;

// 配置 工程工件 对应的 jar 包产出 配置
// 这里将 文档打包 和 源码打包 后的 jar 包作为输出
artifacts {
    
    
    archives sources2Jar
    archives document2Jar
}




二、配置上传工件



" publishing/publications " 中 , 配置 artifact sources2Jar 上传源码 , 配置 artifact document2Jar 上传文档 ;

// 发布到 远程/本地仓库 相关配置
publishing {
    
    
    publications {
    
    
        // plugin 函数是随意命名的函数
        plugin(MavenPublication) {
    
    
            // 配置上传内容
            // components.java 是打包的 jar 包
            from components.java

            // 指定自定义 Gradle 插件名称
            artifactId 'plugin'

            // 上传源码
            artifact sources2Jar
            // 上传文档
            artifact document2Jar
        }
    }
}

完整源码如下 :

plugins {
    
    
    id 'java-library'
    id 'kotlin'
    id 'groovy'
}

java {
    
    
    sourceCompatibility = JavaVersion.VERSION_1_7
    targetCompatibility = JavaVersion.VERSION_1_7
}

dependencies {
    
    
    implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
    implementation gradleApi()
    implementation localGroovy()
    implementation fileTree(dir: 'libs', includes: ['*.jar'])
}

// 指定自定义 Gradle 插件的分组
group 'kim.hsl.plugin'

// 指定自定义 Gradle 插件的版本号
version '0.1'

// 自定义 Gradle 插件的名称 , 默认为工程名
// 也可以在 publishing / publications 脚本块中 自己指定


// 用于将 插件上传到 远程仓库 或者 本地仓库 中
apply plugin: 'maven-publish'

// 自定义源码打包任务
// 自定义 Jar 类型的 Gradle 任务
// 将源码打包到 jar 包中
task sources2Jar(type: Jar) {
    
    
    // 指明要打的 jar 包名称
    // 最终打包的名称是 plugin-0.1-sources.jar
    baseName 'plugin'
    // 指定分类器 , 与其它 jar 包进行区分
    classifier 'sources'
    // 设置打包哪些文件
    // 这里设置的是 main 目录下的所有文件
    from sourceSets.main.allSource
}

// 自定义文档打包任务
// 自定义 Jar 类型的 Gradle 任务
// 将文档打包到 jar 包中
task document2Jar(type: Jar, dependsOn: [javadoc, groovydoc]) {
    
    
    // 指明要打的 jar 包名称
    // 最终打包的名称是 plugin-0.1-doc.jar
    baseName 'plugin'
    // 指定分类器 , 与其它 jar 包进行区分
    classifier 'doc'
    // 设置打包哪些文件
    // 这里设置的是 javadoc 和 groovydoc 任务的输出目录
    from javadoc.destinationDir, groovydoc.destinationDir
}

// 配置 工程工件 对应的 jar 包产出 配置
// 这里将 文档打包 和 源码打包 后的 jar 包作为输出
artifacts {
    
    
    archives sources2Jar
    archives document2Jar
}

// 发布到 远程/本地仓库 相关配置
publishing {
    
    
    publications {
    
    
        // plugin 函数是随意命名的函数
        plugin(MavenPublication) {
    
    
            // 配置上传内容
            // components.java 是打包的 jar 包
            from components.java

            // 指定自定义 Gradle 插件名称
            artifactId 'plugin'

            // 上传源码
            artifact sources2Jar
            // 上传文档
            artifact document2Jar
        }
    }
}




三、将 Gradle 插件 jar 包、源码、文档上传到本地Maven 仓库



执行 Gradle 面板中的 publishingPluginPublicationToMavenLocal 任务 ,
在这里插入图片描述

检查本地 Maven 仓库 , 发现了上传的 jar 包 , 代码 , 文档 ;

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/han1202012/article/details/127360246