代码库上传远程仓库利器(maven-pubish/maven)

代码库上传远程仓库利器(maven-pubish/maven)

maven-publish(推荐)

  • 如果想把代码发布到私有仓库或公有仓库,那么可以利用maven-publish这个工具非常方便地进行上传
  • maven-publish官方文档:https://docs.gradle.org/current/userguide/publishing_maven.html

实践参考

  • 以idea工具为例
  • 参考配置如下(gradle5.6)
    plugins {
        id 'java-library'
        id 'maven-publish'
    }
    
    repositories {
        mavenLocal()
        maven {
            url = 'http://repo.maven.apache.org/maven2'
        }
    }
    
    dependencies {
        compile 'org.apache.httpcomponents:httpclient:4.5.3'
        compile 'org.slf4j:slf4j-api:1.7.21'
        compile 'org.slf4j:slf4j-simple:1.7.21'
    }
    
    group = 'com.github.wxpay'
    version = '3.0.9'
    description = 'wxpay-sdk'
    sourceCompatibility = '1.8'
    
    tasks.withType(JavaCompile) {
        options.encoding = 'UTF-8'
    }
    // 源码
    task sourcesJar(type: Jar) {
        from sourceSets.main.allJava
        archiveClassifier = 'sources'
    }
    // javadoc
    task javadocJar(type: Jar) {
        from javadoc
        archiveClassifier = 'javadoc'
    }
    
    publishing {
        publications {
            mavenJava(MavenPublication) {
                artifactId = 'wxpay-sdk'
                from(components.java)
                artifact sourcesJar
                artifact javadocJar
            }
        }
        repositories {
            maven {
                url = '你的仓库地址'
                credentials {
                    username '仓库账号'
                    password '仓库密码'
                }
            }
        }
    }
    javadoc {
        if(JavaVersion.current().isJava9Compatible()) {
            options.addBooleanOption('html5', true)
        }
        // 编码最好都统一为utf-8
        options{
            encoding "UTF-8"
            charSet 'UTF-8'
            author true
            version true
        }
    
    }
    
  • 之后在根目录下执行一下命令 gradlew publishMavenJavaPublicationToMavenRepository
  • 以上特别注意编码的设置,否则可能出现编码GBK的不可映射字符的错误,如果设置后还是出现同样的错误,那么请检查下idea的文件配置
    在这里插入图片描述
  • 如果不需要生成javadoc或者源码,直接把相关配置去掉即可

maven(旧插件)

  • maven可用于库的发布
  • 官方介绍: https://docs.gradle.org/current/userguide/maven_plugin.html#header

实践参考

  • 本例以发布android库为例

  • 在库的build.gradle同级目录下创建文件maven.gradle

    apply plugin: 'maven'
    
    // 指定编码
    tasks.withType(JavaCompile) {
        options.encoding = "UTF-8"
    }
    // 打包源码
    task androidSourcesJar(type: Jar) {
        classifier = 'sources'
        from android.sourceSets.main.java.srcDirs
    }
    
    artifacts {
        archives androidSourcesJar
    }
    
    afterEvaluate { project ->
    
        uploadArchives {
            repositories {
                mavenDeployer {
                    //远程仓库的地址
                    repository(url: "仓库地址") {
                        //nexus登录的用户名和密码
                        authentication(userName: "admin", password: "admin")
                    }
    
                    pom.project {
                        //项目引用设置
                        groupId 'com.gosuncn.util'
                        artifactId 'glog'
                        version '1.0.1'
                        packaging 'aar'//打包的格式
                    }
                }
            }
    
        }
    
    }
    
    
  • 之后在要发布的库的目录下的build.gradle中引入

    apply from: './maven.gradle'
    ...
    
  • 最后在工程根目录下执行任务gradlew uploadArchives即可上传到远程仓库

maven和maven-publish的关系

  • 实际上maven-publish是maven的升级版,官方也是推荐使用maven-publish,但由于maven出现早,因此大部分文章都是以maven做介绍,不管哪个,只要够用就好

参考

如何将Android studio中Library发布到私服Nexus仓库 - 简书

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值