如何在gradle中外部传递版本范围

时间:2016-02-23 21:05:46

标签: gradle versioning

Gradle(版本2.11)新手试图计算如何在build.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]'
        ]
    )
}

我有多个这样的groupIds + artifactIds,并希望通过版本范围上限(始终遵循格式yyyy.mm.dd-UTC - 其中-UTC是硬编码的)

  1. gradle.properties
  2. 命令行(-Pmy_version=2016.02.24-UTC
  3. 依赖关系由另一个团队托管在maven repo中。所以我徒劳地尝试了所有这些:

    1. 使用version: "$my_version"的build.gradle和使用my_version='(,2016.02.24-UTC]'
    2. 的gradle.properties
    3. 使用version: "(,$my_version]"的build.gradle和使用my_version='2016.02.24-UTC'
    4. 的gradle.properties
    5. 使用version: "(," + my_version + "]"的build.gradle和使用my_version='2016.02.24-UTC'
    6. 的gradle.properties

      我可能最后一个错了(不确定project.project.ext前缀。)

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

      有人可以分享如何在外部控制范围上限吗?

1 个答案:

答案 0 :(得分:0)

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

def my_version = project.ext['my_version']

您可以像这样访问命令行var:

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