2016-08-04 4 views
0

Also die Idee ist, dass egal welches Unterprojekt ich bin und egal, an welchem ​​SCM-Projekt ich arbeite, ich möchte die korrekte Wrapper-Version von Gradle starten.Wie kann ich die korrekte Version von Gradle aus einem beliebigen Unterprojektverzeichnis starten?

Zum Beispiel, wenn ich ein Projekt A habe, das zwei Teilprojekte B und C hat, sollte ich in B oder C sein können und die richtige Version des Gradle Wrappers in Projekt A bekommen. ... aber warten. Es gibt mehr. ;-)

Es muss auch am Projekt Q arbeiten, das ich gerade ausgecheckt habe, welches die Z und Y des Unterprojekts hat. Mit anderen Worten, ich möchte nicht den Wrapper von Projekt A bekommen, wenn ich ' Ich arbeite in Y. Ich möchte die Version von Q.

Ich habe eine BASH-Funktion (Sie können es einfach wie ein Alias ​​verwenden) dafür aber ich bin bereit, die Punkte an jeden zu übergeben, der einen hat, der gleich oder besser ist. Wenn nicht, werde ich meine als Antwort posten. Hier

+0

Hätten Sie etwas dagegen, Ihre Bash-Funktion hier einzubinden? – ferdy

+1

@ferdy [find-grddle] (https://github.com/cbeams-archive/shell-scripts) ist super praktisch. –

Antwort

0

ist, was ich habe mit:

function gradle { 
    CURDIR=`pwd` 
    NOERR=true 
    while [[ ! -e "${CURDIR}/gradlew" ]] 
    do 
     CURDIR="$(dirname "$CURDIR")" 
     if [[ "${CURDIR}" == "/" ]]; then 
      echo "Failed to find gradlew in any parent dir. Are you sure this is a Gradle project?" 
      NOERR=false 
      break 
     fi  
    done 

    if [[ $NOERR ]];then 
     ${CURDIR}/gradlew [email protected] 
    fi 
} 

Fund-gradle sieht die Möglichkeit eines Systems Gradle aber dieses ist handlich, dass es in Ihrem Bashrc geht und verwendet den gradle Namen. Das Looping ist definitiv sauberer in der Suche. Möchte auch die Fehlermeldung ändern. Sie können sicher sein, dass jemand Ihre Berechtigungen nicht entfernt, wenn Sie nicht den Zugriff auf die gesamte Box verloren haben. ;-)

Verwandte Themen