我有一个Gradle构建脚本,它必须在任务中调用Scala(或Java)方法。
目前,我有src /.../ utils / lib.java
这个文件有一个带有静态方法的简单类,我想在build.gradle脚本中调用它。
但我不知道如何导入此文件并使用此方法。
答案 0 :(得分:0)
这实际上取决于您的gradle脚本的设置方式以及您要完成的任务。没有看到它,很难给出具体的全面反应。以下是我所知道的两种最常用的方法,它们允许您在gradle脚本中执行代码。
1)要直接回答您的响应,要执行静态java方法,需要先编译它。如果构建的其余部分需要执行此操作,那么您需要将其构建为多项目构建。
https://docs.gradle.org/current/userguide/multi_project_builds.html
假设你有
apply plugin: 'java'
然后,您就可以使用包含静态方法的类创建一个jar,并创建一个可以执行类型Exec
或JavaExec
的任务来执行此jar。
2)更简单,更简单的方法:
由于gradle允许你直接执行groovy代码,如果可能的话,我会尝试将逻辑从静态方法移动到gradle文件中。您可以在 org.gradle.api 上引用对象和方法来自定义许多构建操作。
https://docs.gradle.org/current/javadoc/
以下是我的build.gradle用于在编译步骤之后将资源文件复制到构建目录中,然后将其打包到jar中。
compileJava {
doLast {
def f = file("src/main/java/resources/db/migration")
println "Copying SQL from {$f} to {$buildDir/db/migration}"
copy {
from file(f)
into file("$buildDir/db/migration")
include('*.sql')
}
}
}
这可能不是您正在寻找的简单解决方案,但我希望它能为您提供一些很好的指导。