Como fazer referência a pacotes públicos do GitHub do projeto maven

Oct 18 2020

Eu tenho um repositório GitHub com uma biblioteca publicada em seu próprio repositório maven de pacotes GitHub. E também tenho outro projeto em que desejo fazer referência a esta biblioteca como uma dependência.

Quando adiciono a seguinte configuração ao arquivo POM do meu projeto, ela simplesmente não funciona.

<repositories>
 <repository>
  <id>github</id>
  <name>GitHub Packages</name>
  <url>https://maven.pkg.github.com/test-account/test-lib</url>
 </repository>
</repositories>

Requer minha autenticação. Eu entendo que isso é bastante lógico, pois basicamente não é um repositório de fontes, mas um repositório maven subjacente. Mas há uma maneira de ter acesso maven normal a essa dependência? Minha biblioteca está no repositório público.

PS Por favor, não sugira o uso do Jitpack, pois gostaria de ter uma solução limpa sem quaisquer recursos adicionais.

Respostas

1 Frans Oct 20 2020 at 11:11

A resposta parece ser "você não pode". Veja este comentário de um membro da equipe do GitHub :

Nosso serviço Maven não permite acesso não autorizado no momento. Planejamos oferecer isso no futuro, mas precisamos melhorar o serviço um pouco antes disso.

Por enquanto, a opção mais simples parece ser criar um token de acesso pessoal com acesso de leitura e incluí-lo no URL da <repository>seção em seu pom.xml, assim:

<repository>
  <id>github</id>
  <name>GitHub Packages</name>
  <url>https://my-user:[email protected]/my-user/my-repo</url>
</repository>

Caso contrário, as opções são provavelmente:

  • Crie um token de acesso pessoal com acesso de leitura e compartilhe-o com o mundo todo.
  • Use a solução alternativa descrita aqui
  • Publique no Maven Central (mas isso é um mundo de dor)