Come recuperare le licenze di libreria di terze parti

3

Sto cercando un modo per raccogliere automaticamente tutte le licenze di libreria di terze parti che il mio progetto sta utilizzando. Attualmente sto raccogliendo a mano le licenze su github.

Finora, non ho un'idea chiara su come ottenere automaticamente una licenza per librerie di terze parti. Qual è il modo più affidabile per ottenere la licenza di terze parti?

Piccole idee:

  • La maggior parte dei progetti Github contiene un testo di licenza. esempio: link . Ma puoi mappare una dipendenza 'com.squareup.dagger: dagger: 1.2.2' con il suo URL github?

  • la maggior parte degli artefatti JVM si trova su mvnrepository . Non so se mvnrepository.com elenchi la licenza.

  • i file .jar possono contenere il testo della licenza. Come estrarlo?

Correlati: Qual è la migliore pratica per organizzare licenze di libreria di terzi "documenti"?

    
posta Raymond Chenon 29.04.2015 - 00:52
fonte

1 risposta

1

Un possibile modo per automatizzare parte di questo è il seguente algoritmo:

Add the project GAV to queue
For each GAV in queue 
  Add all dependencies from GAV to queue // optional after first run? 
  Download jar
  Extract/unzip jar and search root directory of jar for file containing "license" // see Java zip classes
  Parse root pom.xml for license information
  if neither work
     output that license information could NOT be found
  else
     save license information for GAV
// end for loop       

È possibile creare un plug-in maven che esegue questa operazione e restituisce il file nella directory root del progetto (anziché in una directory di build) in modo da notare quando il file cambia. Altrimenti, uno script perl / python potrebbe essere più semplice (ma anche più di un hack .. :)).

Dato che è facile usare le dipendenze transitive nel tuo codice senza saperlo, dovresti anche usare il Divieto delle dipendenze transitorie Regola degli Enforcer.

Se non lo fai, allora sicuramente mi assicurerei di analizzare tutte le dipendenze transitive per le loro licenze (usa sempre la 3a riga dell'algoritmo).

    
risposta data 12.10.2015 - 12:00
fonte

Leggi altre domande sui tag