首页 > 解决方案 > 如何在 doLast gradle build 中使用我编译的类?

问题描述

我有一个项目my_project。我想编译它,编译后我想访问该项目中的一些类,例如创建新对象MyDataClass并打印它。

这就是我在 build.gradle 中尝试做的事情:

doLast {
    MyDataClass toPrint = new MyDataClass()
    System.out.println(toPrint)
}

我想我必须以某种方式在buildscript块中指定类路径,my_project但我对 gradle 真的很陌生,我不知道该怎么做。

感谢您的任何帮助。

标签: javagradle

解决方案


你应该能够从 sourceSets.gradlebuilds.runtimeClasspath 得到你需要的东西

假设您的 sourceSets 已正确声明。 https://docs.gradle.org/current/dsl/org.gradle.api.tasks.SourceSet.html

我必须查看您的 build.gradle 才能更好地了解您要完成的工作,但创建一个 java 类并从 JavaExec 任务调用它可能更容易

task(runApplication,  type: JavaExec) {  
    main = 'com.druudik.MyNewDataClass' //need main method in this java file  
    classpath = sourceSets.gradlebuilds.runtimeClasspath  
    args 'arg1', 'arg2'  
}

推荐阅读