我有多模块项目,我使用artifactory来解析自定义库:
父项目的build.gradle
:
...
subporjects {
...
apply plugin: "com.jfrog.artifactory"
artifactory {
resolve {
contextUrl = ext.getProperty('ARTIFACTORY_URL')
repoKey = ext.getProperty('ARTIFACTORY_REPO_NAME')
username = ext.getProperty('ARTIFACTORY_USERNAME')
password = ext.getProperty('ARTIFACTORY_PASSWORD')
}
}
}
按预期工作,我的库通过gradle artifactoryPublish
发布到artifactory,然后从那里获取它。但在某些情况下,我想从mavenLocal()
repo获取我的自定义库。我有下一个子项目build.gradle
repositories {
mavenCentral()
mavenLocal()
}
dependencies {
compile 'my-custom-library'
}
但是我可以看到它仍然是从神器中解决的。我可以以某种方式优先mavenLocal()
吗?
答案 0 :(得分:0)
存储库优先级将是它们添加到RepositoryHandler
的顺序我猜测在应用插件时会添加神器存储库,因此您可以通过
来延迟afterEvaluate {
subprojects {
apply plugin: "com.jfrog.artifactory"
// etc
}
}
或者
evaluationDependsOnChildren()
subprojects {
apply plugin: "com.jfrog.artifactory"
// etc
}
答案 1 :(得分:0)
如果您只想依赖另一个子项目中的一个子项目,则应使用project
表示法声明依赖项:
dependencies {
compile project(':shared')
}
https://docs.gradle.org/current/userguide/multi_project_builds.html#sec:project_jar_dependencies
答案 2 :(得分:0)
从
更改声明存储库的顺序repositories {
mavenCentral()
mavenLocal()
}
到
repositories {
mavenLocal()
mavenCentral()
}