我有一个Java应用程序,它使用名为com.abc.XYZLogging
的自定义库。
此库取决于org.springframework:spring-context:4.3.7.RELEASE
和org.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插件调用也会发生这种情况。
我的神器中是否缺少任何依赖关系映射?
答案 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
}
}