Java 从其他目录运行gradle命令

Java 从其他目录运行gradle命令,java,gradle,Java,Gradle,我有文件夹“A”和文件夹“B” 文件夹“B”具有渐变代码 我想从文件夹“B”的文件夹“A”运行gradle clean和gradle build命令 如何执行此操作?使用-b参数(即--build file) 您应该使用“开始目录”参数(-p,--project dir:请参阅) 我认为另一个可用参数-b--build file也可以工作,但它的主要用途是当您的构建脚本文件名与默认的build.gradle不同时 这比看起来要难。 Dispite为--project dir,--gradle u

我有文件夹“A”和文件夹“B”
文件夹“B”具有渐变代码 我想从文件夹“B”的文件夹“A”运行
gradle clean
gradle build
命令

如何执行此操作?

使用
-b
参数(即
--build file

您应该使用“开始目录”参数(
-p,--project dir
:请参阅)


我认为另一个可用参数
-b--build file
也可以工作,但它的主要用途是当您的构建脚本文件名与默认的
build.gradle
不同时

这比看起来要难。 Dispite为--project dir,--gradle user home,--build file设置不同的值 无论您做什么,当您从build.gradle中“println project.projectDir”时 脚本将始终报告“build.gradle”所在的目录

我想在gradle中重新安排事情,因为gradle污染了您的根目录 有很多垃圾!“干净代码”的鲍勃叔叔(罗伯特·C·马丁)可能会把这种行为称为“粗鲁代码”

经过一整天的搜寻,我终于找到了答案。 以下是我的项目结构:

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

build.gradle:
main.java
要运行: 在“Gradle”文件夹中执行“git bash here”。 然后键入:

//RUN.sh

然后按回车键


我的输出:(TDD_JAVA==根文件夹)
gradle产生的所有垃圾都被放入 “生成的”文件夹。然后,my.gitignore确保不提交任何垃圾邮件。

对我来说,这很有效

gradle clean build --console=plain -p ${projectPath}
其中: clean:用于“清理”build/libs文件夹。 控制台普通:仅在控制台中显示生成结果


到底是什么问题?您不知道如何启动存储在另一个目录中的程序?
GENERATED/
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'
        }
    }
}
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
public class 
Main{
    public static void 
    main( 
        String[] args
    ){

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

    }
}
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
gradle clean build --console=plain -p ${projectPath}