java - 如何在compileJava之前执行 'JavaExec'类型的任务

标签 java gradle build.gradle

在编译代码之前,我需要执行一个包含 main 方法的 java 类。到目前为止,这是我尝试过的:

task runSimple(type: JavaExec) {
    main = 'jjrom.ObjectGen'
    classpath = sourceSets.main.runtimeClasspath
    File prop1 = file(propFilePath)
    args '-sqlserver', '-force', prop1.path
    println "I'm done executing."
}
compileJava {
    dependsOn runSimple
}

当我使用命令“gradle compileJava”执行这个脚本时,我得到这个错误信息:

我执行完了。

失败:构建失败,出现异常。

出了什么问题:以下任务之间的循环依赖::classes --- :compileJava --- :runSimple --- :classes (*)

最佳答案

如果需要在编译代码之前执行这个类,不能给它classpath = sourceSets.main.runtimeClasspath。后者包括编译后的代码,因此 Gradle 会自动推断 runSimple.dependsOn compileJava,它与您的 compileJava.dependsOn runSimple 一起提供循环任务依赖性。 (准确地说,Gradle 推断出 runSimple.dependsOn classes,而后者又依赖于 compileJava。)

关于java - 如何在compileJava之前执行 'JavaExec'类型的任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19529817/

相关文章:

gradle - Gradle-如何从根项目发布子项目

java - IntelliJ 是否支持任何类型的模板来自动创建多个文件?

java - 超过 200 列的 SWT 表无法正确呈现

java - 使用 Google map 地理定位 API

spring-boot - Spring Boot-我可以将Jetty与SL4J一起使用

gradle - gradle自定义任务类使其无法编译

java - 小工具中的Logback+Swing

gradle - 如何在 Gradle 中配置日志级别?

Android Studio 1.0.0 - 未能找到 butterknife :6. 0.0

android - 无法获得 google-services-4.3.3 - Firebase 实现