【问题标题】:Jenkins Artifactory plugin not resolving artifactsJenkins Artifactory 插件无法解析工件
【发布时间】:2015-08-08 09:05:29
【问题描述】:

Artifactory 提供了一个 Jenkins 插件,根据文档,它应该是这样的

从 Artifactory 解析工件并将工件和构建信息部署到 Artifactory。

我向 Artifactory 发布了一个库,现在我正在尝试构建一个使用该库的项目

我的设置

build.gradle

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.1.0'
    }
}

allprojects {
    repositories {
        mavenLocal()
        jcenter()
    }
}

Jenkins gradle 构建步骤

运行./gradlew assemble

Gradle-Artifactory 集成

已启用,但由于我只需要/希望从 Artifactory 解析工件,因此我已配置我的 Artifactory 服务器和解析存储库,但禁用了其他所有内容。

我的构建当前失败并出现以下错误

FAILURE: Build failed with an exception.

* What went wrong:
A problem occurred configuring project ':app'.
> Could not resolve all dependencies for configuration ':app:_debugCompile'.
   > Could not find any version that matches com.mygroup:mylib:latest.integration.
     Searched in the following locations:
         file:/var/lib/jenkins/.m2/repository/com/mygroup/mylib/maven-metadata.xml
         file:/var/lib/jenkins/.m2/repository/com/mygroup/mylib/
         https://jcenter.bintray.com/com/mygroup/mylib/maven-metadata.xml
         https://jcenter.bintray.com/com/mygroup/mylib/
         file:/mnt/jenkins/tools/android-sdk/extras/android/m2repository/com/mygroup/mylib/maven-metadata.xml
         file:/mnt/jenkins/tools/android-sdk/extras/android/m2repository/com/mygroup/mylib/
         file:/mnt/jenkins/tools/android-sdk/extras/google/m2repository/com/mygroup/mylib/maven-metadata.xml
         file:/mnt/jenkins/tools/android-sdk/extras/google/m2repository/com/mygroup/mylib/
     Required by:
         My Job:app:1.0-SNAPSHOT

显然,gradle 没有在 Artifactory 中搜索工件。

问题

如何让 Jenkins 的 Artifactory 插件告诉 gradle 从我的 Artifactory 服务器解析工件?即使只是让 gradlelook 有一个开始。

【问题讨论】:

    标签: jenkins gradle artifactory


    【解决方案1】:

    Artifactory 不是 jcenter。如果您的库仅部署到 Artifactory,则需要设置构建以从 Artifactory 获取依赖项。你有太多的方法来实现它:在 Jenkins 和 Gradle 中。

    设置 Jenkins

    您使用 Artifactory Jenkins Plugin 设置 Jenkins 以将 Artifactory 用于您的依赖项。

    安装插件,在设置中设置 Artifactory 服务器,然后在作业配置中选中“Resolve artifacts from Artifactory”复选框。

    或者,设置 Gradle

    另一个选项可能是指示 Gradle 使用您的 Artifactory 服务器作为依赖项存储库。可能这样的事情可以完成这项工作:

    repositories {
        maven {
            url "http://myartifactoryhost:80801/artifactory/libs-releases"
        }
    }
    

    请注意,您需要替换主机和端口,如果您希望从另一个项目中解析工件(例如 libs-snapshots),您可能还需要更改存储库的名称。


    我在JFrogBintray [artifactory] 背后的公司,详情和链接见my profile

    【讨论】:

    • 谢谢巴鲁克。正如我在我的问题中提到的(尽管我应该更清楚)我已经在使用 Jenkins 插件并在工作中启用了 Gradle-Artifactory 集成。没有“从工件中解析工件”复选框,但我选择了我的工件服务器和我的解析存储库。我错过了什么吗?
    • 同样的问题 - Gradle 没有“从工件中解析工件”选项 - 它仅适用于 Maven。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-04
    • 1970-01-01
    • 2019-11-09
    • 2017-04-30
    • 2017-06-13
    • 2015-04-19
    • 1970-01-01
    相关资源
    最近更新 更多