首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用artifactory-publish和maven-publish将apk发布到Artifactory

使用artifactory-publish和maven-publish将apk发布到Artifactory
EN

Stack Overflow用户
提问于 2015-12-31 07:01:39
回答 2查看 7.1K关注 0票数 1

正在使用的插件有:'com.jfrog.artifactory‘和'maven-publish’

根build.gradle:

代码语言:javascript
复制
buildscript {
    repositories {
        maven {
            url 'http://localhost:8081/artifactory/globalmaven'
        }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.5.0'
        classpath "org.jfrog.buildinfo:build-info-extractor-gradle:4.0.0"
    }
}

allprojects {
    repositories {
        maven {
            url 'http://localhost:8081/artifactory/globalmaven'
        }
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

group = 'com.my.package'

apply plugin: 'com.jfrog.artifactory'
apply plugin: 'maven-publish'

artifactoryPublish {
    clientConfig.info.setBuildName('My_special_build_name')
    clientConfig.info.setBuildNumber('1')
}

artifactory {
    contextUrl = 'http://localhost:8081/artifactory'
    publish {
        repository {
            repoKey = 'Libs-snapshot-local'

            username = project.getProperties().artifactory_user
            password = project.getProperties().artifactory_password
        }
        defaults {
            publishArtifacts = true
            publishPom = false
            publishIvy = false
        }
    }
    resolve {
        repository {
            repoKey = 'globalmaven'
        }
    }
}

和应用程序build.gradle

代码语言:javascript
复制
apply plugin: 'com.android.application'

version = "1.0"

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.1"

    defaultConfig {
        applicationId "com.my.package"
        minSdkVersion 19
        targetSdkVersion 23
        versionCode 1
        versionName version
    }
    buildTypes {
        debug {
            versionNameSuffix "-SNAPSHOT"
        }
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:design:23.0.1'
}


publishing.publications {
    apk(MavenPublication) {
        groupId group
        artifactId 'MyArtifact'
        artifact("$buildDir/outputs/apk/${project.getName()}-debug.apk")
    }
}

问题是apk没有上传到Artifactory,构建描述符正在上传,一切看起来都很好,只是没有apk工件( apk已经构建,我已经验证了它是否存在,命名是否正确,并且位于正确的路径中)。

输出:

代码语言:javascript
复制
$ ./gradlew artifactoryPublish
[buildinfo] Not using buildInfo properties file for this build.
:artifactoryPublish
Deploying build descriptor to: http://localhost:8081/artifactory/api/build
Build successfully deployed. Browse it in Artifactory under http://localhost:8081/artifactory/webapp/builds/My_special_build_name/1

BUILD SUCCESSFUL
EN

回答 2

Stack Overflow用户

发布于 2015-12-31 13:11:12

你需要告诉artifactory插件你想发布的是什么。检查artifactory plugin上的publications/publishConfigs属性。

票数 2
EN

Stack Overflow用户

发布于 2016-03-17 03:52:12

首先,我不确定发布一个apk到Artifactory是你想要的。您想要发布到Artifactory的是Android应用程序(apk)还是Android库(aar)?不管怎样,Owais Ali都是正确的。您需要在项目的根级build.gradle中指定要发布的内容,如下所示:

代码语言:javascript
复制
artifactory {
    defaults {
        publications('apk')
        publishArtifacts = true
        publishPom = true
    }
}

即使到那时,我认为您仍然可能会遇到一些进一步的问题。有关我遇到的类似问题和我找到的解决方案,请参阅此Stack Overflow线程:

Gradle Artifactory Plugin - How to publish artifacts from multiple modules in a project?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34538589

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档