Como incluir licenças para dependências do Maven de terceiros?

19

Estou produzindo um binário distribuível para o meu projeto Java. Estou lançando de duas maneiras:

  1. Maven Central

  2. Distribuível compactado no código do Google

Meu projeto está licenciado sob a licença Apache 2.0. Eu uso um pequeno número de terceiros, um dos quais é licenciado pelo MIT. Acredito que é minha obrigação conscientizar os usuários do meu projeto sobre o conteúdo da licença, com base no seguinte texto da licença:

O aviso de direitos autorais acima e este aviso de permissão devem ser incluídos em todas as cópias ou partes substanciais do Software.

Qual a melhor maneira de referenciar isso na minha fonte e nos meus distribuíveis? Atualmente estou pensando:

  1. Meus arquivos de origem não precisam fazer referência a nada. Eles apenas incluem meu aviso do Apache 2.0.

  2. Eu adiciono um arquivo LICENSE.txt na raiz do meu projeto, incluindo o texto da licença do Apache 2.0.

  3. No meu distribuidor distribuído compactado, também preciso adicionar algo que indique que um componente é licenciado no MIT. Talvez um arquivo AVISO?

  4. Para minha distribuição do Maven Central, não preciso fazer nada, pois meu artefato declara suas dependências, mas na verdade não as inclui.

Parece um plano válido? Nesse caso, alguém pode aconselhar como realizar o ponto 3.

Duncan Jones
fonte

Respostas:

5

Usando o Maven License Plugin , você pode gerar um arquivo de texto com todas as licenças ( license:add-third-party). Esse arquivo pode ser incluído como um recurso no seu projeto ou no seu pacote zip.

J. Fabian Meier
fonte