Como usar o leiningen para desenvolver usando jarras locais?
-
29-10-2019 - |
Pergunta
Sei que essa pergunta é exatamente a mesma encontrada aqui.No entanto, visto que essa pergunta tem 1,5 anos (ou mais), gostaria de revisitá-la.Como adicionar dependências locais usando o leiningen?Certamente esse recurso já deve existir?
Solução
Crie um Repositório Maven privado e, em seguida, adicioneo seguinte para o seu project.clj
:repositories {"local" ~(str (.toURI (java.io.File. "your_local_repository")))}
Outras dicas
Se os jars forem baseados em seus próprios projetos, você pode usar lein install
para colocá-los em seu .m2 local ou usar o recurso checkout-dependencies.
Você também pode usar o recurso extra-classpaths, etc.
Descobri que a solução mais fácil (embora um tanto hacky) é fazer o seguinte:
Para um projeto existente que você está usando como dependência:
- Em seu projeto local que possui a dependência que você deseja modificar, certifique-se de executar
lein deps
- Clone o repo desta dependência para que possa modificá-lo localmente (obviamente, certifique-se de usar a mesma tag da versão especificada no arquivo project.clj)
- Execute
lein uberjar
neste diretório de dependência (onde reside o arquivo project.clj relevante) - Copie o jar autônomo gerado no destino / para o caminho / arquivo exato dos seus arquivos maven locais ... (algo como: ~ / .m2 / repository / project /.../ file.jar); Certifique-se de fazer backup do arquivo jar original para que possa restaurá-lo mais tarde, se for desejável
Para desenvolvimento do seu próprio projeto:
- No projeto ou plug-in que você está desenvolvendo, basta executar
lein install
- Descubra onde está o seu repositório maven local (veja acima um exemplo de caminho)
- Insira as informações de dependência em seu projeto de teste como faria para qualquer outro projeto leiningen
Novamente, este é um hack rápido e talvez não seja a maneira como você faria para fazer um desenvolvimento local sério, mas achei fácil para o que eu queria. Verifique lein help tutorial
para muito mais informações