Com o lançamento da versão 1.5, antecipado para o final de Abril, o projeto JRuby continua à melhorar a interoperabilidade entre Java e Ruby. Desenvolvedores Ruby conseguirão obter grande vantagem da força da plataforma Java, enquanto os desenvolvedores Java encontrarão mais razões para misturar ferramentas Ruby em seus projetos.
Uma das maiores novidades no JRuby 1.5 estará na área de configuração de projeto, com a abrangente integração do Ant e dos repositórios Maven em seu conjunto de ferramentas. A integração do JRuby com o Maven trará dezena de milhares de novos Gems para a plataforma JRuby, possibilitando bibliotecas Java serem instaladas como Gems:
Graças ao Tamas Cservenak da Sonatype, nós temos uma coisa que antes foi tida como impossível: integração completa do RubyGems com todos os artefatos Maven do mundo...!
A partir do JRuby 1.5, você conseguirá instalar ou usar como dependência qualquer biblioteca Java já publicada no repositório público do Maven. Em resumo, você agora terá em torno de 60000 bibliotecas adicionais ao seu alcance.
A integração é realizada através do servidor do Maven que se parece com um repositório padrão do RubyGems para o JRuby. Usuários do JRuby verão os benefícios em utilizar bibliotecas Java se tornarem tão convenientes quanto usar bibliotecas Ruby. Isso também fará do JRuby uma escolha mais útil para empresas que enfatizam o uso de bibliotecas na avaliação de novas tecnologias.
O JRuby 1.5 também pode ajudar desenvolvedores Java a melhorarem seus próprios gerenciadores de dependências, devido à sua integração com a ferramenta de build Apache Ant. Em um recente post em seu blog, o co-líder do JRuby, Charles Nutter, mostra como desenvolvedores Java podem gerenciar suas dependências usando a ferramenta de build do Ruby, o Rake, com o gerenciador de dependências da Apache, o Ivy, uma ferramenta normalmente usada com o Ant. O Rake pode fazer o download e a instalação do Ivy, utilizá-lo para buscar arquivos jar e outros recursos (juntamente com suas dependências) de repositórios remotos, e fazê-los disponíveis para o build. Tudo isso é possível devido à habilidade do JRuby 1.5 de chamar tarefas do Ant de dentro do Rake.
Desenvolvedores Java que desejam diminuir sua dependência do Ant não precisam reescrever todos os seus buildfiles a partir do zero. Além de permitir que as tarefas do Ant possam ser chamadas de dentro Rake, a integração do JRuby's Rake/Ant permite o Rake ser chamado do Ant, assim como permite que as tarefas do Rake serem importadas como alvos(target) do Ant. Como o co-líder do JRuby, Tom Enebo, escreveu:
Você simplesmente precisa anexar um Rakefile para ganhar algumas novas funcionalidades e deixar seus colegas de time avaliarem o quanto eles gostaram disso. Se eles gostarem... [você pode] começar a utilizar os recursos do Rake para estar apto a adicionar tarefas Rake dentro das suas dependência do Ant. Seu grupo continua utilizando o Ant como ferramenta de build, mas você estará delegando parte do build para o Rake.
A integração Rake/Ant possibilita os desenvolvedores usufruir das vantagens do poder de cada:
Eu acho que as pessoas podem ver o Ant como uma ferramenta que é um pouco bruta, mas que faz seu trabalho com segurança. Isso é um pouco lamentável por ter pouco suporte para construções com programação imperativa. Isso parece ter sido uma decisão de projeto, mas não faz alguns programadores muito felizes.
Rake, pelo contrário, tem uma sintaxe muito mais agradável que o Ant. Ele também possibilita qualquer construção que a linguagem Ruby permite.... Por outro lado, se você necessita executar tarefas comuns no mundo Java, então ele falta com as tarefas padronizadas multi-plataforma que o Ant possui. Você se verá fazendo um monte de comandos shell... isso funcionará muito bem até você tentar a construir algo no, gasp, Windows...
Ele adiciona, "Mesmo que você esteja totalmente vendido ao Rake, você ainda precisa saber que programas como o NetBeans esperam ver o arquivo build.xml, então ele pode interagir com o seu projeto"
Enquanto desenvolvedores Java podem usar a integração Rake/Ant para facilitar suas vidas, existem benefícios para os desenvolvedores JRuby também. O Ant pode ser chamado do Rake, e os alvos do Ant podem ser chamados como tarefas do Rake de dentro do rake - um pode simplesmente importar o Ant buildfile para fazer seus alvos disponíveis para as tarefas do Rake. Isso possibilita os usuários do Rake interagirem com os buildfiles do Ant que já existem e sistemas que dependam deles.
"Idealmente nós cobrimos todos cenários de integração, e finalmente ofuscamos as linhas entre o Rake e o Ant", Nutter escreve. "E nós estaremos mais aptos a mover o build do JRuby para o Rake, que fará todos mais felizes."