gradle - 无法在使用 kotlin dsl 的 scala-java polyglot gradle 项目中的 java 编码中使用 scala 类
问题描述
我使用 gradle kotlin dsl 构建了 scala/java polyglot 项目[gradle-scala-java-polyglot-project]
1 。
下面是项目结构
± tree .
├── build.gradle.kts
├── gradle
│ └── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
├── settings.gradle.kts
└── src
├── main
│ ├── java
│ │ └── com
│ │ └── example
│ │ └── User.java
│ ├── resources
│ └── scala
│ └── com
│ └── example
│ ├── Book.scala
│ └── main
│ └── MainApp.scala
└── test
├── java
└── resources
如您所见,java 代码有一个类com.example.User.java
,scala 有两个类com.example.Book.scala
,com.example.main.MainApp.scala
.
当 scala 类使用 java 类时,构建成功。
但是当我在 java 类中使用 scala 类时,我得到符号未找到错误。
下面是项目构建文件。
plugins {
java
scala
}
group = "org.example"
version = "1.0-SNAPSHOT"
repositories {
mavenCentral()
}
scala {
zincVersion.set("1.3.5")
}
sourceSets {
main {
withConvention(ScalaSourceSet::class) {
scala {
setSrcDirs(listOf("src/main/scala", "src/main/java"))
}
}
}
test {
withConvention(ScalaSourceSet::class) {
scala {
setSrcDirs(listOf("src/test/scala", "src/test/java"))
}
}
}
}
dependencies {
implementation("org.scala-lang:scala-library:2.13.5")
implementation("org.scala-lang:scala-compiler:2.13.5")
testImplementation("org.junit.jupiter:junit-jupiter-api:5.6.0")
testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine")
}
该项目也在github上。如何混合使用 java/scala 类并修复此错误?
注意:我的项目使用 scala 2.13.5 版本的 scala。
解决方案
推荐阅读
- c - 如何实现 SWAR 无符号小于?
- php - 将 div 添加到 wordpress 导航中
- java - 来自套接字的 InputStream 和 OutputStream 阻塞
- pytest - 字符串中是否禁止空格作为自定义选项传递给 pytest?
- php - 如何使用 Laravel DB Eloquent with() 并仅获取特定列(Nested Eager Loading Specific Columns)
- java - react-native bridge 位置权限提示两次
- c# - 奥尔良将 RedisGrainStorage 用于“PubSubStore”时会抛出 GrainReferenceNotBoundException
- parallel-processing - 如何控制并发任务数,提高计算速度?
- javascript - 按关键字索引排序 mongodb
- javascript - 如何在 swagger-ui-express 中写入参数