Wie kann ich dafür sorgen, dass sbt Nicht-Java-Quellen in veröffentlichte Artefakte einbezieht?
Ich verwende das Kotlin-Plugin und kann nicht herausfinden, wie ich sbt zwingen kann, eine .kt-Datei in das veröffentlichte Quell-Jar aufzunehmen. Es enthält nur Java-Dateien.
Viele Leute im Internet schlagen vor, dem sbt-Skript folgenden Code hinzuzufügen, aber es hilft nicht
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) }
},
Ich habe es auch versucht
includeFilter in (Compile, packageSrc) := "*.scala" || "*.java" || "*.kt",
Hier werden einige Variablen in der sbt-Konsole ausgegeben
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
src/main/kotlin
WerkenAntworten:
Welches Plugin benutzt du für Kotlin?
https://github.com/pfn/kotlin-plugin bietet die Möglichkeit
kotlinSource
zu konfigurieren, wo sich das Quellverzeichnis befindet.sbt packageBin
kompilierte Kotlin-Dateien und füge sie zur Ausgabe von jar hinzu.build.sbt
src / main / kotlin / org.test
Konsole
Ziel / Scala-2.13
jar gehören MainKt.class
und der Ordner org / test enthält auch MainKt.class.
Würde dies Ihr Problem lösen?
quelle