如何在Gradle中实现“等同”的外壳功能

时间:2018-12-22 23:13:13

标签: docker gradle minikube

我有一个正在运行的gradle脚本,用于构建Docker映像(我使用跨模式docker插件,但我想这对我的问题无关紧要)。我的gradle脚本可以正常运行,但是现在我希望它可以与minikube一起使用,因此我只需要这样做

eval $(minikube docker-env)

在运行gradle命令之前。这使“ docker”命令与minikube docker一起使用,而不与Mac中的原始docker一起使用。

问题是,当我从eclipse运行gradle脚本时,必须以某种方式将“ eval $(minikube docker-env)”命令包含在gradle脚本中,因为它不能作为bash命令先执行限制Eclipse中的执行(任何地方都没有bash)。我尝试添加:

commandLine 'eval','$(/usr/local/bin/minikube docker-env)'

这不起作用,可能是因为“ eval”并不是真正的命令,而是一个外壳函数,将$()中的命令返回作为子命令执行。

我该如何模拟这一点,以便我的gradle命令包含用于配置minikube的eval?

1 个答案:

答案 0 :(得分:0)

如果您使用的是Gradle 4.9+,请查看“ How to pass arguments from command line to gradle”是否有帮助:

./gradlew run --args="$(/usr/local/bin/minikube docker-env)"

这样,您可以避免在Gradle内部处理eval