Java与Scala同一项目混合开发

一、项目结构

图片.png

二、gradle配置

apply plugin: 'java'
apply plugin: 'scala'
task "createDirs" << {
    sourceSets*.scala.srcDirs*.each { it.mkdirs() }
    sourceSets*.java.srcDirs*.each { it.mkdirs() }
    sourceSets*.resources.srcDirs*.each { it.mkdirs() }
}

sourceSets {
    main {
        scala {
            srcDirs = ['src/main/scala','src/main/java']
        }
        java {
            srcDirs = []
        }
    }
    test{
        scala {
            srcDirs = ['src/test/scala','src/test/java']
        }
        java {
            srcDirs = []
        }
    }
}

tasks.withType(ScalaCompile){
    options.encoding="UTF-8"
}

三、问题

1. 编译时提示->“错误: 找不到或无法加载主类

        scala {
            srcDirs = ['src/main/scala','src/main/java'] //一定要在这里加上java源码目录
        }

2. 编译时提示->编码GBK的不可映射字符

所有的类均使用UTF-8格式,但编译时还会报此错误,解决方法如下

tasks.withType(ScalaCompile){
    options.encoding="UTF-8"
}

你可能感兴趣的:(Java与Scala同一项目混合开发)