【问题标题】:Trying to publish local android library module to Artifactory尝试将本地 android 库模块发布到 Artifactory
【发布时间】:2015-08-24 17:22:43
【问题描述】:

我在我的项目中创建了一个新的 Android 库模块作为测试库。这是一个简单的模块,有一个类和一个返回字符串的静态方法。我有在本地运行的 Artifactory 服务器,并希望将我的 Android 库/模块推送到它。我从 Artifactory Web 界面生成了 Gradle 脚本和 gradle 属性。我的 testLib 模块中的 build.gradle 现在看起来像这样:

apply plugin: 'com.android.library'

android {
    compileSdkVersion 22
    buildToolsVersion "22.0.1"

    defaultConfig {
        minSdkVersion 14
        targetSdkVersion 22
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:22.2.1'

}

/////

buildscript {
    repositories {
        maven {
            url 'http://localhost:8081/artifactory/plugins-release'
            credentials {
                username = "${artifactory_user}"
                password = "${artifactory_password}"
            }
        }

    }
    dependencies {
        //Check for the latest version here: http://plugins.gradle.org/plugin/com.jfrog.artifactory
        classpath "org.jfrog.buildinfo:build-info-extractor-gradle:3.1.1"
    }
}

allprojects {
    apply plugin: "com.jfrog.artifactory"

}

artifactory {
    contextUrl = "${artifactory_contextUrl}"   //The base Artifactory URL if not overridden by the publisher/resolver
    publish {
        repository {
            repoKey = 'libs-release-local'
            username = "${artifactory_user}"
            password = "${artifactory_password}"
            maven = true

        }
    }
    resolve {
        repository {
            repoKey = 'libs-release'
            username = "${artifactory_user}"
            password = "${artifactory_password}"
            maven = true

        }
    }
}

添加之后,我运行了./gradlew artifactoryPublish 命令。它说构建成功。然后,我将工件 Web 应用程序转到存储库浏览器,并在 libs-release-local 下查看,它的工件计数为 0。我做错了什么?

【问题讨论】:

  • 以前从未与本地 AAR 合作过,但我用这个人来帮助弄清楚这些东西是如何工作的。也许它会帮助你? github.com/blundell/release-android-library
  • 感谢您的链接,但我无法利用该存储库来发挥我的优势... =(

标签: android gradle artifactory


【解决方案1】:

在这里找到一个工作示例:http://jeroenmols.github.io/blog/2015/08/06/artifactory/

【讨论】:

  • url 可能不可用,最好显示主要解决方案是示例代码。
【解决方案2】:

您需要在您的 Android 模块的 build.gradle 文件中应用 maven-publish 插件,并在其中添加一个 publishing { ... } 块以使模块可发布。其次,您需要在项目的根级build.gradle 文件的artifactory { ... } 块中指定要发布的内容。

有关如何为 Android 库项目执行此操作的示例,请参阅此 StackOverflow 线程:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-13
    • 2015-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多