comandos Gradle executado a partir de outro diretório

votos
0

Eu tenho a pasta A ea pasta B
Folder B é ter código Gradle eu quero correr gradle cleane gradle buildcomando da pasta A da pasta B
Como posso fazer isso?

Publicado 19/12/2018 em 14:21
fonte usuário
Em outras línguas...                            


3 respostas

votos
0

Isso é mais difícil do que parece. Dispite definindo valores diferentes para --project-dir, --gradle-user-home, --build-file Não importa o que você faz, quando você "println project.projectDir" do seu roteiro build.gradle Será sempre informar o diretório no qual "build.gradle" vive.

Eu queria voltar a organizar as coisas em Gradle porque Gradle polui seu diretório raiz com um monte de lixo! Tio Bob de "Código Clean" (Robert C. Martin) provavelmente se referem a este comportamento como "código rude".

Eu finalmente descobri depois de procurar em torno de todo o dia. Aqui está minha estrutura do projeto:

<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]");

    }
}

Para correr:

Fazer um " festa git aqui " dentro do " Gradle pasta". Em seguida, digite:

./RUN.sh

E aperte enter


Minha saída: (TDD_JAVA == Root_folder)

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

Todo o lixo gerado por Gradle é colocado no " GERADA pasta". Então meu .gitignore faz certeza de não cometer qualquer desse lixo.

Respondeu 23/05/2019 em 05:26
fonte usuário

votos
0

Você deve usar o parâmetro "diretório start" ( -p, --project-dir : veja opções de Meio Ambiente )

Eu acho que o outro parâmetro disponível -b --build-filepoderia funcionar tão bem, mas seu uso principal é quando a sua construção filename roteiro difere do padrão build.gradle.

Respondeu 19/12/2018 em 18:48
fonte usuário

votos
0

Use o -bparâmetro (ie --build-file)

cd A
gradle -b ../B/build.gradle 
Respondeu 19/12/2018 em 14:45
fonte usuário

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