Como faço para carregar automaticamente um frasco de banco de dados no groovy sem usar o comutador -cp?
Pergunta
Quero simplificar minha execução de um script Groovy que faz chamadas para um banco de dados Oracle. Como faço para adicionar o jar ojdbc ao caminho de classe padrão para que eu possa executar:
groovy RunScript.groovy
ao invés de:
groovy -cp ojdbc5.jar RunScript.groovy
Solução
Resumido de Receitas groovy, por Scott Davis, Incluindo frascos automaticamente no diretório ./groovy/lib:
- Crio
.groovy/lib
No seu diretório de login Descomposição A seguinte linha em $ {groovy_home} /conf/groovy-starter.conf
load !{user.home}/.groovy/lib/*.jar
Copie os frascos que você deseja incluir para
.groovy/lib
Parece que, para o Groovy 1.5 ou mais tarde, você recebe isso por padrão (não é necessário editar o conf), basta soltar os frascos no DIR /lib.
Outras dicas
Existem algumas maneiras de fazer isso. Você pode adicionar o frasco à variável de pista de classe do seu sistema. Você pode criar um diretório chamado .groovy/lib em seu diretório doméstico e colocar o frasco lá. Ele será adicionado automaticamente ao seu caminho de classe em tempo de execução. Ou você pode fazer isso no código:
this.class.classLoader.rootLoader.addURL(new URL("file:///path to file"))
groovy
é apenas um script de wrapper para o frasco Groovy que configura o Java ClassPath. Você também pode modificar esse script para adicionar o caminho ao seu próprio jarra, suponho.
Você pode adicionar o seguinte Shebang para a primeira linha do seu script Groovy:
#!/usr/bin/env groovy -cp ojdbc5.jar
Em seguida, marque o executável do script:
chmod u+x RunScript.groovy
Agora, a execução do script por si só definirá o ClassPath automaticamente.
./RunScript.groovy