gradle获取子主题名称、版本
根项目build.gradlegradle获取子主题名称、版本,gradle,Gradle,根项目build.gradle subprojects { jar { manifest { attributes Name: project.archivesBaseName, Version: project.version } } } archivesBaseName = 'AAA' version = '1.0.1' archivesBaseName = 'BBB' ver
subprojects {
jar {
manifest {
attributes Name: project.archivesBaseName,
Version: project.version
}
}
}
archivesBaseName = 'AAA'
version = '1.0.1'
archivesBaseName = 'BBB'
version = '1.0.2'
子项目A build.gradle
subprojects {
jar {
manifest {
attributes Name: project.archivesBaseName,
Version: project.version
}
}
}
archivesBaseName = 'AAA'
version = '1.0.1'
archivesBaseName = 'BBB'
version = '1.0.2'
子项目B build.gradle
subprojects {
jar {
manifest {
attributes Name: project.archivesBaseName,
Version: project.version
}
}
}
archivesBaseName = 'AAA'
version = '1.0.1'
archivesBaseName = 'BBB'
version = '1.0.2'
我想要的是在根项目上运行gradlew build
之后,在项目A和B的清单文件中,有Name:AAA版本:1.0.1
和Name BBB版本:1.0.2
。
但我得到的是项目名称:A
,版本是未指定的
Name:A版本:未指定
您需要将子项目
配置闭包包装在项目评估
回调闭包中:
gradle.projectsEvaluated {
subprojects { subproject ->
jar {
manifest {
attributes Name: subproject.archivesBaseName,
Version: subproject.version
}
}
}
}
为什么?因为在根父项目中执行子项目
配置关闭时(在配置阶段),子项目的archiveBaseName
和version
属性值尚未计算,因此清单属性的jar
配置不正确。当所有项目都已评估时,您需要设置此配置==>为此使用projectsEvaluated
lifecyclehook