Gradle 格拉德有没有像SBT~(tilde)这样的东西?
在SBT中,可以选择在循环中运行它,检查源是否已更改,并在每次发生时运行指定的操作 例如,当您运行Gradle 格拉德有没有像SBT~(tilde)这样的东西?,gradle,Gradle,在SBT中,可以选择在循环中运行它,检查源是否已更改,并在每次发生时运行指定的操作 例如,当您运行sbt~test时,它会运行测试,然后等待源更改。如果某些源文件发生更改,它将再次运行测试。然后它再次等待来源的改变,等等 Gradle中有这样的选项吗?还没有(从2.0开始),但这是一个计划中的功能。它是计划用于具体版本还是仅以“可能有”的方式? #! /bin/bash ARGS="$*" while [[ ! -z "$1" ]]; do TASK=$1 shift
sbt~test
时,它会运行测试,然后等待源更改。如果某些源文件发生更改,它将再次运行测试。然后它再次等待来源的改变,等等
Gradle中有这样的选项吗?还没有(从2.0开始),但这是一个计划中的功能。它是计划用于具体版本还是仅以“可能有”的方式?
#! /bin/bash
ARGS="$*"
while [[ ! -z "$1" ]]; do
TASK=$1
shift
case "$TASK" in
compile|compileJava|compileScala)
MONITOR_DIR=src/main
break
;;
test|compileTestJava|compileTestScala)
MONITOR_DIR=src/test
break
;;
build)
MONITOR_DIR=src
break
;;
*)
;;
esac
done
if [[ -z "$MONITOR_DIR" ]]; then
echo "Error: could not detect a supported gradle task on the command line"
exit 1
fi
if [[ "$(uname -s)" == "Darwin" ]]; then
MD5=md5
else
MD5=md5sum
fi
LAST=""
while [[ true ]]; do
CURRENT="$(find $MONITOR_DIR -type f -exec $MD5 {} \;)"
if [[ "$LAST" != "$CURRENT" ]]; then
if [[ ! -z "$LAST" ]]; then
echo "Change detected in $MONITOR_DIR => gradle $ARGS"
echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
fi
LAST="$CURRENT"
gradle $ARGS
echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
echo "Monitoring $MONITOR_DIR for changes..."
fi
sleep 2
done