Java Gradle的产品风味;纯粹的;gradle(不是android gradle)
我想用gradle为不同的客户构建一个java库。 在“纯”gradle中是否有类似android的产品口味Java Gradle的产品风味;纯粹的;gradle(不是android gradle),java,gradle,Java,Gradle,我想用gradle为不同的客户构建一个java库。 在“纯”gradle中是否有类似android的产品口味 谢谢。答案是肯定的,但您必须使用新的Gradle软件模型,该模型正在酝酿中。这将是一条充满痛苦的道路,正如我在C/Cpp项目中学习到的那样,你将是一名开拓者。以下是您的构建的大致外观 plugins { id 'jvm-component' id 'java-lang' } model { buildTypes { debug release }
谢谢。答案是肯定的,但您必须使用新的Gradle软件模型,该模型正在酝酿中。这将是一条充满痛苦的道路,正如我在C/Cpp项目中学习到的那样,你将是一名开拓者。以下是您的构建的大致外观
plugins {
id 'jvm-component'
id 'java-lang'
}
model {
buildTypes {
debug
release
}
flavors {
free
paid
}
components {
server(JvmLibrarySpec) {
sources {
java {
if (flavor == flavors.paid) {
// do something to your sources
}
if (builtType == buildTypes.debug) {
// do something for debuging
}
dependencies {
library 'core'
}
}
}
}
core(JvmLibrarySpec) {
dependencies {
library 'commons'
}
}
commons(JvmLibrarySpec) {
api {
dependencies {
library 'collections'
}
}
}
collections(JvmLibrarySpec)
}
}
参考资料:
1) Java软件模型
2) 风味
注意:我不确定Java软件模型对flavors的支持程度,我将做一些测试并报告
更新:这是可行的,但JVM库规范目前不支持。我将尝试发布一个更完整的答案,并举例说明如何进行自定义规范。@RaGe I更新了参考资料。我需要做一些双重检查,以确保它的工作说明。我只在c/cpp中使用软件模型,而不在我们的Android/Java项目中使用。让我做一些测试,我会向您报告,这是可行的,但目前JVM库规范不支持。要做到这一点,你必须创建自己的规范。明天我将尝试发布一个示例。@MichaelHobbs:你有完整的最小示例吗?