2016-02-23 15 views
0

Gradle(版本2.11)新手试图了解如何定义build.gradle之外的版本范围。如何在gradle中外部传递版本范围

List artifactIds_group1=[ 
    'g1_a1', 
    'g1_a2', 
    'g1_a3' 
] 
def group1_deps=[] 
artifactIds_group1.each { 
    group1_deps.push(
     [ 
      group: 'com.example.group1', 
      name: "$it", 
      version: '(,2016.02.24-UTC]' 
     ] 
    ) 
} 

我有多个这样的组id + artifactIds和想传递版本范围帽(总是如下格式yyyy.mm.dd-UTC - ,其中-UTC被硬编码)经由

  1. gradle.properties
  2. 命令行(-Pmy_version=2016.02.24-UTC

依赖关系托管在另一个团队的artifactory中的maven repo上。于是,我尝试了所有的这些白白:

  1. 的build.gradle与version: "$my_version"和gradle.properties与my_version='(,2016.02.24-UTC]'
  2. 的build.gradle与version: "(,$my_version]"和gradle.properties与my_version='2016.02.24-UTC'
  3. 的build.gradle与version: "(," + my_version + "]"和gradle这个与my_version='2016.02.24-UTC'

的.properties我可能已经得到了这最后一个错误(约project.project.ext前缀不知道)。

但是,似乎除非在build.gradle中定义,输入的类型是字符串(不是版本规范)。

有人可以分享如何控制范围上限?

回答

0

您可以访问gradle.properties属性文件,如下所示:

def my_version = project.ext['my_version'] 

您可以访问命令行变种,像这样:

gradle(w) (task) -Pmy_version=2016.02.24-UTC 
def my_version = project.hasProperty('my_version') ? project.my_version : "not found"