使用Gradle从artifactory

时间:2015-08-28 08:15:55

标签: java gradle artifactory

所以,这就是我想要做的事情:

  1. 使用gradle将库推送到artifactory - >完成
  2. 获取服务以从artifactory中提取依赖库 - >问题
  3. 根据我的理解,可以使用Gradle Artifactory Plugin完成。

    以下是build.gradle示例:

    buildscript {
        repositories {
                 jcenter()
            }
    
        }
        dependencies {
            classpath 'org.jfrog.buildinfo:build-info-extractor-gradle:3.1.0'
        }
    }
    
    
    apply plugin: "com.jfrog.artifactory"
    apply plugin: 'eclipse'
    apply plugin: 'java'
    apply plugin: 'maven'
    apply plugin: 'maven-publish'
    apply plugin: 'eclipse-wtp'
    apply plugin: 'war'
    
    group = 'a.b.c'
    
    allprojects {
        apply plugin: 'artifactory'
    }
    
    configurations{
    ...
    }
    
    dependencies {
        compile group: 'a', name: 'b', version:'c'
        compile group: 'x', name: 'y', version:'z'
    }
    
    artifactory {
        contextUrl = "${artifactory_contextUrl}"   //The base Artifactory URL if not overridden by the publisher/resolver
        publish {
            repository {
                repoKey = 'gradle-release-local'
                username = "${artifactory_user}"
                password = "${artifactory_password}"
                maven = true
                ivy {
                    ivyLayout = '[organization]/[module]/ivy-[revision].xml'
                    artifactLayout = '[organization]/[module]/[revision]/[module]-[revision](-[classifier]).[ext]'
                    mavenCompatible = false
                }
            }
        }
        resolve {
            repository {
                repoKey = 'gradle'
                repoKey = 'gradle-release-local'
                maven = true
    
            }
        }
    }
    

    示例Settings.gradle

    rootProject.name = ‘partnering'
    includeFlat ‘a'
    project(‘:a').projectDir=new File(settings,'../a')
    

    注意:

    在依赖关系中,正如您所见

    1. 编译组:' a',名称:' b',版本:' c'     这需要repoKey = gradle-release-local
    2. 编译组:' x',名称:' y',版本:' z'     这需要repoKey = grade
    3. 错误:

      1. 无法解析外部依赖项a.b.c,因为未定义存储库。
      2. 但是我可以看到库已经出现在artifactory
      3. 有人可以告诉我这个问题。

2 个答案:

答案 0 :(得分:1)

gradle是一个虚拟存储库,它聚合了其中的其他存储库的数量。

在存储库配置中,确保gradle虚拟存储库包含gradle-release-local存储库。

完成后,只留下一个repoKey进行解决,gradle

答案 1 :(得分:0)

如果要从远程存储库中提取依赖项,则需要在build.gradle中定义它们。将库推送到存储库与拉动库是隔离的。

以下示例包含两个示例。一个用于maven central,一个用于自定义存储库。

repositories {
    mavenCentral()
    maven {
        url "http://www.edwardraff.com/maven-repo/"
    }
}

查看the documentation