我有两个Nexus仓库:一个用于发布,另一个用于快照。我在发布任务中有代码来定义根据文档选择哪个仓库:
repositories {
repositories {
maven {
credentials {
username "$nexusUser"
password "$nexusPassword"
}
def releasesRepoUrl = "https://xxx/repository/factoring-maven-release/"
def snapshotsRepoUrl = "https://xxx/repository/factoring-maven-snapshots/"
url = version.endsWith('SNAPSHOT') ? snapshotsRepoUrl : releasesRepoUrl
}
}
publications {
create("default", MavenPublication.class) {
from(components["java"])
}
}
}
}
本代码包含的子项目:
rootProject.name = 'xxx-integration-lib'
include 'xxx-service1-dto'
include 'xxx-service2-dto'
subprojects build.gradle:
group = "xxx"
version = "0.0.6-SNAPSHOT"
但这不起作用,因为子项目版本总是未指定。已尝试:
1.正在创建新的allproject任务以返回版本
1.使用 project.property('propName')-但这似乎是一种变通方法,而不是解决方案
有什么想法吗
3条答案
按热度按时间ndh0cuux1#
对我来说唯一有效的方法是一个变通方案:将子项目版本管理放在root build.gradle中,如下所示
然后project.version属性被正确注入
c86crjj02#
我正在使用gradle进行多模块项目,我们没有在子模块中设置版本。我们所做的只是在
gradle.properties
文件的基础项目中设置它。你可以使用它:
j0pj023g3#
而不是用这个
在发布和存储库块之外使用***afterEvaluate***块。