jak zmusić sbt do zebrania w jednym miejscu wszystkich plików jar, od których zależy mój kod?
Jestem nowy w sbt. Chcę, aby umieścić wszystkie muchy jar zależności, a także mój plik jar w jednym miejscu. SBT uruchomi aplikację, ale mam różne zależności rozrzucone wokół i .ivy folder pełen rzeczy, od których zależy mój plik jar. więc czy istnieje proste polecenie, aby skopiować je wszystkie w jednym miejscu, abym mógł rozpowszechnić je na innej maszynie?
7 answers
Istnieje wiele wtyczek, których możesz użyć: SBT-assembly, sbt-proguard, sbt-onejar, xitrum-pakiet itd.
Zobacz listę wtyczek SBT .
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-06-26 08:59:24
Dodaj następujący wiersz do pliku build.sbt
.
retrieveManaged := true
To będzie gromadzić zależności lokalnie
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-07-17 12:51:23
Utwórz zadanie w pliku budowania w następujący sposób:
lazy val copyDependencies = TaskKey[Unit]("pack")
def copyDepTask = copyDependencies <<= (update, crossTarget, scalaVersion) map {
(updateReport, out, scalaVer) =>
updateReport.allFiles foreach {
srcPath =>
val destPath = out / "lib" / srcPath.getName
IO.copyFile(srcPath, destPath, preserveLastModified = true)
}
}
Dodaj zadanie do takiego projektu:
lazy val HubSensors =
Project("HubSensors", file("HubSensors"), settings = shared ++ Seq(
copyDepTask,
resolvers ++= Seq(novusRels),
libraryDependencies ++= Seq(
jodatime
)
)) dependsOn(HubCameraVision, JamServiceProxy, HubDAL)
W konsoli SBT typ:
project [Project Name]
pack
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-11-03 10:31:33
Wypróbuj wtyczkę sbt-pack https://github.com/xerial/sbt-pack , który zbiera wszystkie zależne od siebie Jary w folderze target/pack, a także generuje skrypty startowe.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-05-09 15:36:32
Możesz też spróbować natywnego Packagera SBT: https://github.com/sbt/sbt-native-packager (sbt 0.7+)
Jest to nadal WIP, ale zostanie użyty w Play Framework 2.2 w najbliższych tygodniach. Dzięki temu możesz tworzyć samodzielne pliki ZIP, pakiety Debiana (DEB), pakiety instalacyjne systemu Windows (MSI), DMG, RPM i tak dalej.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-08-05 14:13:24
Dokumenty SBT mają listę "wtyczek One Jar":
- SBT-assembly: https://github.com/sbt/sbt-assembly
- xsbt-proguard-plugin: https://github.com/adamw/xsbt-proguard-plugin
- SBT-deploy: https://github.com/reaktor/sbt-deploy
- sbt-appbundle (OS X standalone): https://github.com/sbt/sbt-appbundle
- sbt-onejar (pakuje swój projekt za pomocą One-JAR™): https://github.com/sbt/sbt-onejar
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-04-14 03:42:21
May you looking for this SBT plugin: https://github.com/anvie/sbt-onedir-plugin
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-11-27 15:03:17