有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

在Gradle构建脚本中使用Scala(或java)方法

我有一个Gradle构建脚本,它必须在任务中调用Scala(或Java)方法

目前,我有src//utils/lib。爪哇

这个文件有一个带有静态方法的简单类,我想在构建中调用它。格雷德尔脚本

但我不知道如何导入此文件并使用此方法


共 (1) 个答案

  1. # 1 楼答案

    这实际上取决于你的gradle脚本是如何设置的,以及你想要完成什么。如果看不到这一点,就很难给出具体的全面回应。以下是我所知道的两种最常见的方法,它们允许您在gradle脚本中执行代码

    1)要直接回答您的响应,要执行静态java方法,需要先编译它。如果构建的其余部分需要执行此操作,那么需要将其构造为多项目构建

    https://docs.gradle.org/current/userguide/multi_project_builds.html

    假设你有

    apply plugin: 'java'
    

    然后,您就可以使用包含静态方法的类创建一个jar,并创建一个可以执行ExecJavaExec类型的任务来执行这个jar

    2)更简单、更不复杂的方法:

    由于gradle允许您直接执行groovy代码,如果可能的话,我会尝试将逻辑从静态方法转移到gradle文件中。你可以在组织上引用对象和方法。格拉德尔。api来定制许多构建操作

    https://docs.gradle.org/current/javadoc/

    下面是我的构建中的一个例子。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')
            }
    
        }
    }
    

    这可能不是你一直在寻找的简单解决方案,但我希望它能给你一些很好的指导