Gradle 格拉德有没有像SBT~(tilde)这样的东西?

Gradle 格拉德有没有像SBT~(tilde)这样的东西?,gradle,Gradle,在SBT中,可以选择在循环中运行它,检查源是否已更改,并在每次发生时运行指定的操作 例如,当您运行sbt~test时,它会运行测试,然后等待源更改。如果某些源文件发生更改,它将再次运行测试。然后它再次等待来源的改变,等等 Gradle中有这样的选项吗?还没有(从2.0开始),但这是一个计划中的功能。它是计划用于具体版本还是仅以“可能有”的方式? #! /bin/bash ARGS="$*" while [[ ! -z "$1" ]]; do TASK=$1 shift

在SBT中,可以选择在循环中运行它,检查源是否已更改,并在每次发生时运行指定的操作

例如,当您运行
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