Po przejściu z jednej ze starszych wersji SBT do najnowszej wersji, straciliśmy możliwość szybkiego pobierania wszystkich zależności słoików i kopiowania ich do katalogu. Czy istnieje prosty sposób na to samo w XSBT 0.11.2?Czy istnieje prosty sposób na skopiowanie wszystkich zależności słoików do określonego katalogu w XSBT 0.11.2?
Odpowiedz
Może moja odpowiedź na to pytanie pomoże: Is there a way to get all dependencies of the project via sbt plugin? To jest najłatwiejszy sposób, jaki znam (używam sbt 0.11.2).
Używamy niestandardowej definicji zadania podobnej do tej, aby skopiować słoiki. Nie mam pojęcia, czy jest to zalecany sposób, aby to zrobić - tam jest nie brzydki collect
. Możesz publikować poprawki (lub modyfikować moją odpowiedź w trybie in-line, jeśli chcesz).
copyJarsFolder <<= (crossTarget in (Compile, packageBin)).apply(_/"jars")
copyJars <<= inputTask { (argTask: TaskKey[Seq[String]]) =>
(copyJarsFolder, dependencyClasspath in Compile) map { (folder, cpEntries) =>
("mkdir -p " + folder).!
//
// find all dependencies
val jars = cpEntries.collect {
case attrFile if attrFile.metadata.keys.exists(_.label == "artifact") =>
// probably an external jar
attrFile.data
}
val copyCmd = jars.mkString("cp -p ", " ", " " + folder)
copyCmd.!
folder
}
}
Dodanie następujących do build.sbt
kopii wszystkich zależności w lib_managed
folderu w katalogu głównym projektu.
retrieveManaged := true
Czy o to prosisz?
Zobacz również to: How to declare a project dependency in SBT 0.10?
tak, dodać
retrieveManaged := true
i widać słoje w lib_managed folderze
Korzystanie SBT 0.13.7, IO.copy i przyjaciele.
Zdefiniuj kilka ustawienie gdzieś w definicji kompilacji:
val copyOutpath = settingKey[File]("Where to copy all libs and built artifact") val copyAllLibsAndArtifact = taskKey[Unit]("Copy runtime dependencies and built artifact to 'copyOutpath'")
Określ zachowanie tych ustawień:
lazy val myProject = project .in(file(".")) .settings( copyOutpath := baseDirectory.value/"specialFolderForMyProgram", copyAllLibsAndArtifact := { val allLibs: List[File] = dependencyClasspath.in(Runtime).value.map(_.data).filter(_.isFile).toList val buildArtifact: File = packageBin.in(Runtime).value val jars: List[File] = buildArtifact :: allLibs val `mappings src->dest`: List[(File, File)] = jars.map(f => (f, maxDynamicJarDir.value/f.getName)) val log = streams.value.log log.info(s"Copying to ${copyOutpath.value}:") log.info(s" ${`mappings src->dest`.map(_._1).mkString("\n")}") IO.copy(`mappings src->dest`) }, libraryDependencies ++= Seq( //... ) )
Nie masz na myśli 'copyOutpath' zamiast' maxDynamicJarDir'? – nob
- 1. Czy istnieje prosty sposób na skopiowanie treści TDictionary do innej?
- 2. Czy istnieje prosty sposób na skopiowanie iteratora do listy w Javie?
- 3. Czy istnieje sposób na skopiowanie wszystkich danych w bazie danych mysql do innej? (phpmyadmin)
- 4. Czy istnieje sposób na osadzanie zależności w skrypcie pythona?
- 5. Czy istnieje sposób, aby programowo wyświetlić listę wszystkich zależności gradle?
- 6. Czy istnieje prosty sposób na wykonywanie wielowierszowych ciągów w Ruby?
- 7. Czy istnieje prosty sposób na ocenę JavaScript w WebStorm?
- 8. Czy istnieje prosty sposób na określenie globalnego wykluczenia zależności w SBT
- 9. Czy istnieje prosty sposób na autouzupełnianie bloków zmiennych w Xcode?
- 10. Czy istnieje prosty sposób porównywania wystąpień BufferedImage?
- 11. Czy istnieje prosty sposób na uzyskanie wymiarów obrazu w Ruby?
- 12. Czy istnieje sposób na skopiowanie ścieżki wyświetlanej w narzędziach do uruchamiania Chrome po sprawdzeniu elementu?
- 13. Czy istnieje sposób na skopiowanie treści odpowiedzi do schowka w Narzędziach Chrome Dev?
- 14. Łatwy sposób na skopiowanie starych wtyczek do nowej instalacji Eclipse
- 15. Czy istnieje prosty sposób na usunięcie kompletnego zestawu dokumentów Vespa?
- 16. Czy istnieje prosty sposób rejestrowania zamknięć statycznych w Castle Windsor?
- 17. Czy istnieje sposób, aby mój program delphi czekał na skopiowanie dużej liczby plików?
- 18. Android: czy istnieje prosty sposób na znalezienie wszystkich ciągów w moim projekcie?
- 19. Jak zmusić mave'a do umieszczenia wszystkich słoików wspólnych dla wojen w tym samym pliku EAR do katalogu głównego EAR?
- 20. Czy istnieje prosty sposób na uzyskanie rozmiaru obiektu java?
- 21. Java: czy istnieje prosty sposób na wybranie podzbioru tablicy?
- 22. Czy istnieje sposób na globalne wykluczenie zależności Maven?
- 23. Biorąc pod uwagę moduł na pypi, czy istnieje sposób na introspekcję modułu i wyświetlenie wszystkich zależności?
- 24. Czy istnieje sposób .NET do wyliczenia wszystkich dostępnych drukarek sieciowych?
- 25. Czy istnieje prosty sposób konwertowania wartości logicznej na liczbę całkowitą?
- 26. Czy istnieje prosty sposób na integrację jshint z Netbeans?
- 27. Czy istnieje prosty sposób na wyczyszczenie zawartości elementu SVG?
- 28. Czy istnieje wtyczka licencyjna Gradle lub Jaki jest najlepszy sposób na obsługę Licencji na zależności?
- 29. Najlepszy sposób na skopiowanie wektora do listy w STL?
- 30. Czy istnieje prosty lub piękny sposób na odwrócenie ciągu znaków?
robi również skopiować słoiki z innymi modułami A określony moduł zależy od? (Jak, jeśli mam projekt zawierający trzy moduły, a trzeci moduł zależy od dwóch innych modułów, to dałby mi katalog 'lib_managed' zawierający całe przechodnie zamknięcie wszystkich bibliotek, których moduł zależy od modułu, w tym modułów innych dwa moduły i * ich * zależności w tym projekcie? –
@Wilfred Tak, lib_managed będzie zawierał każdy słoik wymagany przez twój projekt, co oznacza twoje bezpośrednie zależności i wszystkie przejściowe zależności – dhg