Como faço para carregar automaticamente um frasco de banco de dados no groovy sem usar o comutador -cp?

StackOverflow https://stackoverflow.com/questions/254385

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
Foi útil?

Solução

Resumido de Receitas groovy, por Scott Davis, Incluindo frascos automaticamente no diretório ./groovy/lib:

  1. Crio .groovy/lib No seu diretório de login
  2. Descomposição A seguinte linha em $ {groovy_home} /conf/groovy-starter.conf

    load !{user.home}/.groovy/lib/*.jar

  3. 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
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top