Para utilizar o Scala via Maven é necessário utilizar um plugin denominado scala-maven-plugin. Há também um plugin mais antigo denominado maven-scala-plugin, mas foi substituido pela versão mais nova que iremos abordar. Vou apresentar os itens de configuração do pom.xml necessários para utilizar Scala
A dependência com a versão desejada de Scala deve ser configurada no projeto:
org.scala-lang scala-library 2.9.2
O plugin deve ser configurado:
net.alchim31.maven scala-maven-plugin 3.1.0 compile testCompile
O código fonte Scala deve ser escrito dentro do diretório src/main/scala e o código de testes dentro de src/test/scala. Com isso já é possivel fazer o build de projetos normalmente utilizando o Maven.
Caso seja desejado executar o interpretador REPL basta executar mvn scala:console
Projetos mistos Java/Scala
A configuração apresentada até agora é suficiente para projetos puros Scala e mistos de Java e Scala onde as classes de Scala utilizam as classes de Java. A compilação das classes Java ocorre antes da compilação das classe Scala. Caso seja necessário para as classes Java utilizarem as classes Scala é necessário efetuar uma configuração diferente no plugin.
net.alchim31.maven scala-maven-plugin 3.1.0 scala-compile-first process-resources add-source compile scala-test-compile process-test-resources testCompile
E para finalizar um exemplo de classe Java e Scala colaborando num projeto Maven de acordo com a configuração apresentada. Lembrando que a classe Java está localizada no diretório src/main/java e a classe Scala em src/main/scala.
OlaMundo.javapackage br.com.globalcode.java; import br.com.globalcode.scalamavenproject.App; public class OlaMundo { public static void main(String[] args) { System.out.println(App.olaMundo()); } }App.scala
package br.com.globalcode.scalamavenproject object App { def olaMundo():String = { "Ola Mundo do Scala" } }OBS:A declaração do método olaMundo em Scala poderia ser simplificada, omitindo o tipo de retorno, os parênteses e chaves, mas por enquanto está ótimo assim!
Com isso temos toda a base necessária para começar a utilizar o Scala em projetos reais Java, escrevendo os testes em Scala. No próximo post irei falar sobre a escrita de testes em Scala.
Outras referências:
Comentários