如何使用命令行参数

时间:2017-04-28 05:09:36

标签: gradle

我浏览了以下link并成功实现了一个从另一个项目调用build.gradle文件的任务。即@karl提供的解决方案为我工作。

但我需要一些东西。

有人可以帮我理解如何在调用另一个build.gradle时传递命令行参数吗?命令行参数应该是我从当前build.gradle文件生成的变量。

就我而言,我正在定义一个buildNumber并做这样的事情:

def buildNumber = '10.0.0.1'
def projectToBuild = 'projectName'
def projectPath = "Path_till_my_Project_Dir"
task executeSubProj << {
    def tempTask = tasks.create(name: "execute_$projectToBuild", type: GradleBuild)

    // ****** I need to pass buildNumber as command line argument in "$projectPath/$projectToBuild/build.gradle" ******

    tempTask.tasks = ['build']
    tempTask.buildFile = "$projectPath/$projectToBuild/build.gradle"
    tempTask.execute()
}

1 个答案:

答案 0 :(得分:0)

你应该从不直接在任何gradle对象上调用5:00 then 5:10 then 5:20 then 5:30 then 5:40... 。它可行的事实并不意味着它应该被完成,并且因为你侵入内部gradle的执行图结构而非常劝阻它。

您需要的是GradleBuild类型的任务,其StartParameter字段可用于携带构建选项。

所以:

execute

可以找到完整演示here,导航到task buildP2(type: GradleBuild) { buildFile = '../p2/build.gradle' startParameter.projectProperties = [lol: 'lol'] } 目录并运行p1

您应该按以下方式修改脚本:

gradle buildP2

在执行的项目中,使用def buildNumber = '10.0.0.1' def projectToBuild = 'projectName' def projectPath = "Path_till_my_Project_Dir" task executeSubProj(type: GradleBuild) { buildFile = "$projectPath/$projectToBuild/build.gradle" tasks = ['build'] startParameter.projectProperties = [buildNumber: '10.0.0.1'] } 来获取所需的值。