Qual ferramenta de criação é a melhor para o Scala? Quais são os prós e os contras de cada um deles? Como determinar qual deles usar em um projeto?
Qual ferramenta de criação é a melhor para o Scala? Quais são os prós e os contras de cada um deles? Como determinar qual deles usar em um projeto?
Respostas:
Estamos usando o Maven para criar projetos Scala no trabalho porque ele se integra bem ao nosso servidor de IC. Poderíamos simplesmente executar um script de shell para iniciar uma compilação, é claro, mas temos muitas outras informações vindas do Maven que queremos acessar no CI. Essa é a única razão pela qual posso pensar em usar o Maven para um projeto Scala.
Caso contrário, basta usar o SBT. Você obtém acesso às mesmas dependências (realmente a melhor parte do maven, IMHO). Você também recebe a compilação incremental, que é enorme. A capacidade de iniciar um shell dentro do seu projeto, o que também é ótimo.
O ScalaMock funciona apenas com o SBT e você provavelmente desejará usá-lo em vez de uma biblioteca de zombaria Java. Além disso, é muito mais fácil estender o SBT, pois você pode escrever o código de escala completo no arquivo de construção, para que você não precise passar por todo o rigamarole de escrever um Mojo.
Em resumo, use o SBT, a menos que você realmente precise de uma forte integração ao servidor de IC.
A questão corre o risco de gerar muitas opiniões; seria melhor ter uma lista clara de requisitos ou uma descrição do seu ambiente, conhecimento prévio etc.
FWIW, há mais opiniões neste segmento da lista de discussão do scala .
Meus 2c são: Vá com sbt se você não tiver requisitos específicos
gen-idea
tarefa e abra novamente o projeto: atualizações feitas.compile
, test
, run
, doc
, publish-local
, console
) - a console
é uma das melhores características.Algumas pessoas odeiam o sbt porque ele usa o Ivy para gerenciamento de dependências (não posso comentar seus prós e contras, mas na maioria das vezes não é um problema), algumas pessoas odeiam o sbt porque você especifica o arquivo de compilação em termos de um Scala DSL em vez de XML. Algumas pessoas ficaram desapontadas com o formato do sbt alterado da v0.7 para a v0.10, mas obviamente a migração não afetará você se você começar do zero.