我浏览了以下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()
}
答案 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']
}
来获取所需的值。