Führen gradle Befehle von anderen Verzeichnis

stimmen
0

Ich habe den Ordner „A“ und den Ordner „B“
Ordner „B“ gradle Code wird mit I ausgeführt werden soll gradle cleanund gradle buildaus dem Ordner „A“ des Ordner „B“ Befehl
Wie kann ich das tun?

Veröffentlicht am 19/12/2018 um 14:21
quelle vom benutzer
In anderen Sprachen...                            


3 antworten

stimmen
0

Das ist schwieriger als es aussieht. Dispite Einstellen unterschiedlicher Werte für --project-dir, --gradle-Benutzer-home --build-Datei Egal, was Sie tun, wenn Sie „println project.projectDir“ von Ihrem build.gradle Skript wird es immer berichten die Verzeichnis, in dem „build.gradle“ lebt.

Ich wollte die Dinge in gradle neu ordnen, weil gradle Ihr Root-Verzeichnis mit einer Menge von Junk-verseucht! Uncle Bob von "Clean Code" (Robert C. Martin) würde wahrscheinlich dieses Verhalten als "unhöflich Code" bezeichnen.

Habe ich es endlich nach den ganzen Tag gesucht. Hier ist meine Projektstruktur:

<root_folder>
 |
 +--[ .git       ]
 +--[ .gitignore ]
 |
 +--[-]src/main/java
 |   |
 |   +--Main.java
 |
 +--[-]RUN_ON_CMD
     |
     +--[-]Gradle
         +--[ build.gradle ]
         +--[ RUN.sh ]
         |
         +--[-]GENERATED

.gitignore:

GENERATED/

build.gradle:

apply plugin: 'java'                  
apply plugin: 'application'    

println "[project.projectDir]:"
println project.projectDir
mainClassName = 'Main'

sourceSets {
    main {
        java {
            //:Because "build.gradle" lives in:
            //:<root>\RUN_ON_CMD\Gradle\GENERATED\
            srcDir '../../../src/main/java'
        }
    }
}

RUN.sh

build_gradle=$( realpath build.gradle )
echo $build_gradle

current_directory=$( realpath "." )
echo $current_directory

generated=${current_directory}/"GENERATED"
echo $generated

cp $build_gradle $generated/"build.gradle"
gradle run -b $generated/"build.gradle" -g $generated --no-daemon

main.java

public class 
Main{
    public static void 
    main( 
        String[] args
    ){

        System.out.println("[MAIN]");

    }
}

Zu rennen:

Führen Sie eine „ git bash hier “ in der „ Gradle “ -Ordner. Geben Sie dann:

./run.sh

Und drücken Sie die Eingabetaste


Meine Ausgabe: (TDD_JAVA == Stammordner)

JMIM@DESKTOP-JUDCNDL MINGW64 /c/DEV/REPO/GIT/TDD_JAVA/RUN_ON_CMD/Gradle (master)
$ ./RUN.sh
/c/DEV/REPO/GIT/TDD_JAVA/RUN_ON_CMD/Gradle/build.gradle
/c/DEV/REPO/GIT/TDD_JAVA
/c/DEV/REPO/GIT/TDD_JAVA/RUN_ON_CMD/Gradle
/c/DEV/REPO/GIT/TDD_JAVA/RUN_ON_CMD/Gradle/GENERATED
To honour the JVM settings for this build a new JVM will be forked. Please consider using the daemon: https://docs.gradle.org/5.4.1/userguide/gradle_daemon.html.
Daemon will be stopped at the end of the build stopping after processing

> Configure project :
[project.projectDir]:
C:\DEV\REPO\GIT\TDD_JAVA\RUN_ON_CMD\Gradle\GENERATED

> Task :run
[MAIN]

BUILD SUCCESSFUL in 8s
2 actionable tasks: 1 executed, 1 up-to-date

Alle Junk von gradle erzeugt wird , in die „put ERSTELLT “ -Ordner. Dann ist mein .gitignore stellt sicher , dass keine dieser Junk zu begehen.

Beantwortet am 23/05/2019 um 05:26
quelle vom benutzer

stimmen
0

(Sie sollen die „Start - Verzeichnis“ Parameter verwenden -p, --project-dir : siehe Umgebungsoptionen )

Ich denke , die anderen verfügbaren Parameter -b --build-filekönnten auch funktionieren, aber seine Hauptverwendung ist , wenn Ihre Build - Skript Dateinamen von Standard abweicht build.gradle.

Beantwortet am 19/12/2018 um 18:48
quelle vom benutzer

stimmen
0

Verwenden der -bParameter (dh --build-file)

cd A
gradle -b ../B/build.gradle 
Beantwortet am 19/12/2018 um 14:45
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more