在gradle应用程序中定义变量,在java中读取它

时间:2014-03-20 13:59:53

标签: java gradle

您好我需要在gradle中输入目录,我想将其作为字符串发送到java文件:

project(':MyGenerator') {
    apply plugin: 'application'

    mainClassName = "com.test.MyGenerator"
    outputDir = "../Example/src/main/java-gen"

    dependencies {
        compile fileTree(dir: 'libs', include: ['*.jar'])
    }

    task createDocs {
        def docs = file(outputDir)
        docs.mkdirs()
    }
}

我想将outputDir变量发送到我的java类:

public class MyGenerator {

    public static void main(String args[]) throws Exception {
        (...)
        new Generator().generateAll(schema, "../Example/src/main/java-gen");
    }

}

所以我不需要在generateAll方法中硬编码目标路径。我想让它只依赖于代码中的1个变量,该变量将在gradle中设置。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我已经添加了gradle:

run {
    args outputDir
}

将我的变量作为参数传递给java代码:

public class MyGenerator {

    public static void main(String args[]) throws Exception {
        (...)
        new Generator().generateAll(schema, args[0]);
    }
}

将硬编码路径切换为args [0]。