Usando dependências de código fechado com o Maven

Eu tenho um projeto de código fechado que gostaria de criar usando o Maven. Ele depende de duas bibliotecas java que não estão disponíveis em nenhum repositório público que eu encontrei (libGoogleAnalytics.jar e FlurryAgent.jar nesse caso, mas a pergunta se aplica a qualquer dependência de código fechado).

Gostaria que qualquer pessoa em minha organização pudesse criar o aplicativo usando exatamente as mesmas versões das dependências que eu uso para criar o aplicativo. Isso inclui meus colegas e nosso servidor de compilação.


Como faço para gerenciar dependências de código fechado que o maven não sabe resolver?

Obviamente, eu poderia ir à máquina de cada pessoa e executar manualmente "mvn install: install-file" para colocar o binário em seu repositório maven, mas gerenciar manualmente dependências como essa derrota o objetivo de um gerenciador de dependências.

De acordo com o mavenRepositórios Internos documentação, eu poderia configurar um servidor de repositório em algum lugar e colocar os binários lá, que todos os desenvolvedores acessariam. Mas isso significa que tenho um novo servidor para manter (ou pelo menos um novo site em um servidor existente). Isso também significa que tenho que me preocupar com permissões para garantir que terceiros não possam acessar o repositório. Isso também significa que tenho que me preocupar com backups e disponibilidade agora, para que os desenvolvedores não tenham problemas se o repositório não estiver disponível.

Todos esses problemas desapareceriam para mim se eu pudesse, de alguma forma, usar nosso scm existente (hg neste caso, mas poderia ser git ou svn ou o que for) para armazenar as dependências. Nosso backup do repositório de controle de origem já está em backup; ele sempre estará basicamente disponível para desenvolvedores que estão fazendo builds, e suas permissões já foram tratadas.

Mas ainda não consegui descobrir como gerenciar dependências automatizadas usando hg, se isso é possível.

questionAnswers(3)

yourAnswerToTheQuestion