scala - 如何从build.gradle文件调用scala方法

标签 scala gradle

我刚刚开始研究scala和gradle。我想知道我们如何从gradle构建文件中调用任何scala方法。有人能帮帮我吗?
注释:我想运行一个目录中存在的多个文件。因此,为了获取目录中的所有文件,我在scala中编写了一个方法。我正在尝试从build.gradle文件调用的方法

最佳答案

Gradle allowsbuildscript{ dependencies { ... } }内指定构建脚本本身的依赖关系(不要与普通dependencies { ... }内的项目依赖项混淆)。
例如,在这里我添加了Shapeless依赖关系,并在HList中使用了build.gradlebuild.gradle

buildscript{
    dependencies {
        classpath group: 'com.chuusai', name: 'shapeless_2.13', version: '2.4.0-M1'
    }
}

plugins {
    id 'java'
    id 'scala'
    id 'application'
}

group 'org.example'
version '1.0-SNAPSHOT'

repositories {
    mavenCentral()
}

dependencies {
    testCompile group: 'junit', name: 'junit', version: '4.12'
    // compile group: ...
}

application {
    mainClassName = 'App'
}

import shapeless.*

task hello {
    doLast {    
        HList l = new $colon$colon(1, new $colon$colon("a", new HNil$()))
        println l
    }
}
终奌站$ ./gradlew hello输出量
> Task :hello
1 :: a :: HNil

BUILD SUCCESSFUL in 457ms
1 actionable task: 1 executed
因此,您可以编译Scala源代码,将类打包到jar中,在本地上发布,并在以下位置指定本地依赖项
buildscript{
    dependencies {
        classpath group: 'yourOrganization', name: 'yourArtifact', version: 'yourVersion'
    }
}
然后从scalt代码中的build.gradle中调用方法。

关于scala - 如何从build.gradle文件调用scala方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64064619/

相关文章:

java - Gradle:从应用脚本导入插件类

java - 如何在使用 gradle 的 "compile project"时排除目录?

scala - 隐式def和隐式val之间的区别是什么?

java - 如何让gradle下载库

java - 如何将 gradle 'compile project' 依赖项添加到已发布的 *.pom?

java - 为什么 Scala 从对象的 main 方法而不是类的静态 main 方法开始?

gradle - 为特定依赖项禁用Gradle缓存

scala - 展平列表 + Scala 的 future

scala - 在 Akka 中设置日志记录级别

scala - 使用 scalaz-stream 计算摘要