Есть ли pip/easy_install для Scala?

Я хочу организовать свои пакеты Scala, и мне нравится, как Python решает эту проблему с помощью pip.

Можете ли вы порекомендовать аналогичный инструмент для управления пакетами Scala?

EDIT: я ищу простую установку новых пакетов со всеми их зависимостями, такими как

 >>> pip install <a_package> # installs a_package with all dependencies.

person Jon    schedule 13.11.2013    source источник
comment
Моя первая мысль заключается в том, что некоторая комбинация Maven/SBT сделает то, что вы хотите, но было бы полезно, если бы вы указали, что именно pip делает, что вы хотите имитировать.   -  person Eric Wilson    schedule 13.11.2013
comment
Это отличный вопрос, не могу поверить этим модам...   -  person coleifer    schedule 23.04.2014


Ответы (2)


Наиболее похожим, вероятно, является Scala Build Tool. В частности, зависимости библиотеки. Экосистема Java включает в себя множество библиотек и инструментов сборки, Scala построена на Java. Таким образом, вы получаете возможность использовать такие вещи, как -

Далее, потому что все запускается внутри виртуальной машины; нет установки на «системном» уровне. Вы можете начать с вашего CLASSPATH, а затем изучить загрузка класса.

#!/bin/sh
# From http://www.scalaclass.com/node/10 - CLASSPATH
L=`dirname $0`/../lib
cp=`echo $L/*.jar|sed 's/ /:/g'`
exec scala -classpath "$cp" "$0" "$@"
!#
import com.my.Goodness
val goodness = new Goodness
world.hello
person Elliott Frisch    schedule 13.11.2013

Pythonistas устанавливает общесистемные пакеты, которые затем используются всеми проектами Python. Это приводит к множеству проблем, которые пытается решить virtualenv. Ребята из Scala и вообще люди из Java имеют определение для каждого проекта, которое написано для инструмента управления зависимостями — либо mvn (xml), либо sbt (scala), либо gradle (groovy), и т. д.

Большинство этих инструментов имеют общесистемный кеш, поэтому обычно они загружают какую-то версию зависимости только один раз, а затем помещают ее в определенное место на вашем диске. Когда вам нужно запустить/собрать вашу программу на java или scala, она создает так называемую переменную CLASSPATH, которая состоит из патчей для необходимых библиотек. Затем переменная CLASSPATH (она же PYTHONPATH в мире python) используется средой выполнения для поиска необходимых частей. Опять же, CLASSPATH сильно варьируется от проекта к проекту, тогда как PYTHONPATH довольно постоянен. Я верю, что могут быть инструменты, которые выполняют ту же работу, что и pip, но это не принято в мире JVM.

person om-nom-nom    schedule 13.11.2013