JFrog Artifactory多级依赖

时间:2018-02-12 20:28:16

标签: java gradle artifactory

我有一个Java应用程序,它使用名为com.abc.XYZLogging的自定义库。

此库取决于org.springframework:spring-context:4.3.7.RELEASEorg.slf4j:slf4j-api:1.7.10

所以依赖关系图是这样的:

com.abc.XYZLogging
|---org.springframework:spring-context:4.3.7.RELEASE
|---org.slf4j:slf4j-api:1.7.10
     |---log4j:log4j:1.2.17

所有工件都存在于正确的位置和相同的仓库中。但是gradle只选择第一级com.abc.XYZLogging并且它不会拾取层次结构中的任何其他依赖项。

我使用gradle 4.2和Oracle JDK 1.8.144。即使我从命令行调用gradle clean build并通过eclipse中的Buildship插件调用也会发生这种情况。

我的神器中是否​​缺少任何依赖关系映射?

1 个答案:

答案 0 :(得分:0)

如何使用artifactory自己的插件将基于Artifactory的存储库配置为像Maven样式一样的示例,因为有时只是指向通常所做的神器是不够的。

这只是从artifactory获取libs,发布额外配置的一个例子。此示例也适用于多构建,其中构建脚本与artifactory配置分开。更多信息:https://www.jfrog.com/confluence/display/RTF/Gradle+Artifactory+Plugin

第一个例子是从artifactory本身获取插件,第二个用于jcenter。

buildscript {

    dependencies { classpath "org.jfrog.buildinfo:build-info-extractor-gradle:latest.release" }

    repositories {
        maven {
            credentials {
                username = artifactory_username
                password = artifactory_password
            }
            url "https://.../artifactory/libs-release"
        }
    }
}

allprojects{
    apply plugin: org.jfrog.gradle.plugin.artifactory.ArtifactoryPlugin
    artifactory {
        resolve {
            contextUrl = "https://.../artifactory"
            repoKey = 'libs-global'
            username = artifactory_username
            password = artifactory_password
        }
    }
}
buildscript {
  repositories {
    jcenter()
  }
  dependencies {
    classpath "org.jfrog.buildinfo:build-info-extractor-gradle:latest.release"
  }
}
apply plugin: "com.jfrog.artifactory"

或者更简单,在较新版本中

plugins {
  id "com.jfrog.artifactory" version "latest.release"
}

所以你可以使用像:

这样的块
       artifactory {
            resolve {
                contextUrl = "https://.../artifactory"
                repoKey = 'libs-global'
                username = artifactory_username
                password = artifactory_password
            }
        }