Làm cách nào để tạo sbt bao gồm các nguồn không phải Java cho tạo phẩm được xuất bản?


8

Làm cách nào để tạo sbt bao gồm các nguồn không phải Java cho tạo phẩm được xuất bản?

Tôi đang sử dụng plugin Kotlin và không thể tìm ra cách buộc sbt đưa tệp .kt vào tệp nguồn được xuất bản. Nó chỉ bao gồm các tập tin .java.

Rất nhiều người trực tuyến đề nghị thêm mã sau vào tập lệnh sbt nhưng không giúp được gì

mappings in (Compile, packageSrc) ++= {
  val base  = (sourceManaged  in Compile).value
  val files = (managedSources in Compile).value
  files.map { f => (f, f.relativeTo(base).get.getPath) }
},

Tôi cũng đã thử

includeFilter in (Compile, packageSrc) := "*.scala" || "*.java" || "*.kt",

Đây là đầu ra của một số biến trong bảng điều khiển sbt

sbt:collections> show unmanagedSourceDirectories
[info] * /home/expert/work/sideprojects/unoexperto/extensions-collections/src/main/scala
[info] * /home/expert/work/sideprojects/unoexperto/extensions-collections/src/main/java
[info] * /home/expert/work/sideprojects/unoexperto/extensions-collections/src/main/kotlin

sbt:collections> show unmanagedSources
[info] * /home/expert/work/sideprojects/unoexperto/extensions-collections/src/main/java/com/walkmind/extensions/collections/TestSomething.java

1
Tôi cũng không thể tìm ra điều đó - dường như là một lỗi trong SBT, chỉ lọc các tệp * .scala và * .java (có thể được thực hiện trước khi quảng cáo của Kotlin;). Ví dụ: các tệp * .scala đang src/main/kotlinhoạt động
pme

Câu trả lời:


0

bạn sử dụng plugin nào cho kotlin?

https://github.com/pfn/kotlin-plugin có tùy chọn kotlinSourceđể định cấu hình vị trí thư mục nguồn.

sbt packageBin biên dịch các tập tin kotlin và đưa chúng vào jar đầu ra.

xây dựng

// define kotlin source directory
kotlinSource in Compile := baseDirectory.value / "src/main/kotlin",

src / chính / kotlin / org.test

package org.test

fun main(args: Array<String>) {
    println("Hello World!")
}

bảng điều khiển

sbt compile
sbt packageBin

mục tiêu / scala-2,13

jar bao gồm MainKt. class

và thư mục org / test cũng chứa MainKt. class.

điều này sẽ giải quyết vấn đề của bạn?

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.