如何使用gradle基于项目版本有条件地构建工件?

时间:2016-11-04 12:26:37

标签: gradle spring-boot

您好我有一个名为A的项目,其中包含以下结构的三个模块(核心,移动网络):

A
   --settings.gradle
   --build.gradle
   --core
     --build.gradle
   --web
      --build.gradle
   --mobile
      --build.gradle

我的settings.gradle就像:

include 'core'
include 'web'
include 'mobile'

已经有不同的版本,直到2.0版我们才提供移动模块,在此之前我们不想构建“移动”模块。现在我有1.0,1.1,1.2,2.0,2.1版本,我们在每次代码提交之前测试和检查编译。我们这样做了:

VERSIONS=( "1.0" "1.1" "1.2" "2.0" "2.1 )
for version in "${VERSIONS[@]}"; do (gradle -PspringBootVersion=${version} clean install uploadArchives); done

这种方式在2.0之前的版本中,它仍然会构建“移动”模块,这当然会失败。我的问题是如何有条件地检查和构建项目?提前谢谢。

1 个答案:

答案 0 :(得分:1)

include 'core'
include 'web'

if("${springBootVersion}" ==~ /2\.[0-9]) {
    include include 'mobile'
}

这很简单,我只修改上面的settings.gradle,然后我得到了正确的结果。