我必须在Kotlin中创建一个gradle自定义任务,并使用不同的参数作为输入。因此,基于参数,自定义任务应该运行其他任务。
例如:我想跑步:
./gradlew ci type=release distribution=true version=1.2.2
或
./gradlew ci type=debug distribution=true version=1.2.2
此命令应运行任务:clean、assembleRelease***或***assembleDebug(根据类型参数),如果 distribute 参数为true,则还有另一个散发成品的工作(已经有这个成品)。
问题1:是否有任何方法可以创建一个自定义任务来运行基于外部参数的其他任务?
问题2:有没有办法注入参数?(我认为上面的命令无效)
1条答案
按热度按时间khbbv19g1#
您可以使用
-P
命令传递属性,下面是一个示例。只有执行以下命令
Gradle -PcustomProp=myProp passP
时才能打印现在,您可以传递参数,您可以根据传递的参数进行清理、assembleRelease或assembleDebug。
你有两种方法可以做到这一点.
先道:
创建一个gradle自定义任务来执行另一个gradle命令,这些命令看起来并不整洁。但代码看起来会像这样
如果您将
clean
作为参数传递,这将执行正常清理。第二个道:
您将使用
finializeBy
关键字您可以根据传递的参数调用这3个任务。
代码如下所示(未测试):
第一种方式工作100%,但我不确定第二种,因为我只习惯于使用
finalizedBy
的自定义任务范围外。