上传jar包到Nexus私服

上传 jar 包到 Nexus 私服最简单的莫过于在网页上传,只需要手动选择需要上传的文件即可。在这里介绍下利用gradle上传jar包。上传Maven仓库主要可以使用maven-publishmaven插件,例子如下。

使用maven-publish插件

1. 添加插件
apply plugin: 'maven-publish'

2. 打包jar

task buildJar(dependsOn: ['assembleRelease'], type: Jar) {
    //后缀名
    extension = "jar"
    //最终的 Jar 包名
    archiveName = "${project.getName()}-release.jar"
    //需打包的资源所在的路径集
    def srcClassDir = [project.buildDir.absolutePath + "/intermediates/classes/release"]
    def srcKotlinClassDir = [project.buildDir.absolutePath + "/tmp/kotlin-classes/release"]
    //初始化资源路径集
    from srcClassDir
    from srcKotlinClassDir
    //去掉不要的类
    exclude('io/reactivex/android/R.class')
    //需要打包的类
    include('com/smartahc/android/smartble/*.class')
    include('com/smartahc/android/smartble/**/*.class')
}

3. 配置Maven仓库信息

publishing {
    publications {
        mavenJava(MavenPublication) {
            groupId GROUP_ID
            version = VERSION_NAME
            artifactId ARTIFACT_ID
            // Tell maven to prepare the generated "*.jar" file for publishing
            def artifactPath = "$buildDir/libs/${project.getName()}-release.jar"
            println(artifactPath)
            artifact(artifactPath)
        }
    }
    repositories {
        maven {
            // 指定要上传的maven私服仓库
            url = MAVEN_LOCAL_PATH
            //认证用户和密码
            credentials {
                username localRespos.userName
                password localRespos.password
            }
        }
    }
}

使用maven插件

1. 添加插件
apply plugin: 'maven'

2. 配置仓库信息

afterEvaluate { project ->
    uploadArchives {
        repositories.mavenDeployer {
            pom.groupId = localRespos.GROUP_ID
            pom.artifactId = localRespos.POM_ARTIFACT_ID
            pom.version = localRespos.VERSION_NAME
            repository(url: getRepositoryUrl()) {
                authentication(userName: localRespos.NEXUS_USERNAME, password: localRespos.NEXUS_PASSWORD)
            }
        }
    }
    task buildJar(dependsOn: ['assembleRelease'], type: Jar) {
        extension = "jar" //后缀名
        //最终的 Jar 包名
        archiveName = "${project.getName()}-release.jar"
        //需打包的资源所在的路径集
        def srcClassDir = [project.buildDir.absolutePath + "/intermediates/classes/release"]
        def srcKotlinClassDir = [project.buildDir.absolutePath + "/tmp/kotlin-classes/release"]
        //初始化资源路径集
        from srcClassDir
        from srcKotlinClassDir
        //去掉不要的类
        exclude('io/reactivex/android/R.class')
        //需要打包的类
        include('com/smartahc/android/smartble/*.class')
        include('com/smartahc/android/smartble/**/*.class')
    }
    artifacts {
        archives buildJar
    }
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,384评论 19 139
  • 首先私服是一种衍生出来的特殊的Maven远程仓库,构建私服的好处请看3.5私服 可以帮助大家建立私服的仓库管理软件...
    zlcook阅读 13,620评论 0 32
  • 野外爬山,失足坠入深渊,但没有摔死(梦里从来没有摔死过),感觉被几个人徒手接住。 接住后,他们也不放我下来,我仰面...
    Geshi阅读 1,378评论 2 1
  • 简介 maven这里就不介绍了,可以查看http://maven.apache.org/ 了解(也可以查看另一篇贴...
    pandaAnthony阅读 7,846评论 0 4
  • 有朋友问我,她不擅长演讲,不擅长表达,逻辑不清晰,问我应该怎样才能做到演讲时和我一样有清晰的思路,理性的思维,出色...
    LennyKe阅读 3,795评论 1 0