Riutilizzare un piccolo metodo da Apache Ant: come farlo correttamente

1

Ho adattato del codice dal progetto Apache Ant nel mio lavoro. La parte utilizzata è veramente piccolo: ~ 70 righe, ~ 2000 personaggi . Aggiungere dipendenza a ant per usare quel un singolo metodo sembrava un eccesso.

Il progetto su cui lavoro è interno all'azienda, quindi inizialmente ho incluso un javadoc come

    @see <a href="...">original source</a>

per i miei colleghi sapere che il codice non era mio.

Poi ho riscontrato questo sommario su tldrlegal che afferma che questo non è abbastanza, e per farlo correttamente devo fare molto di più :

  • Includi copyright
  • Includi licenza: include il testo completo della licenza nel software modificato.
  • Modifiche dello stato: affermazione delle modifiche significative apportate al software.
  • Includi avviso: se la libreria ha un file "AVVISO" con note di attribuzione, devi includere tale AVVISO durante la distribuzione. Puoi aggiungere questo file NOTICE.

Da questo deduco che in realtà devo includere il file NOTICE da ant (è come 10 linee), in qualche modo ridistribuire il testo della licenza di Apache 2 con il progetto e includere un commento del mostro come questo prima del corpo della funzione o prima dell'inizio della mia classe:

   Licensed to the Apache Software Foundation (ASF) under one or more
   contributor license agreements.  See the NOTICE file distributed with
   this work for additional information regarding copyright ownership.
   The ASF licenses this file to You under the Apache License, Version 2.0
   (the "License"); you may not use this file except in compliance with
   the License.  You may obtain a copy of the License at

         http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.

C'è un modo più compatto ma ancora corretto per farlo, o non c'è altro? L'introduzione di molti cambiamenti perché utilizzo solo una parte minuscola del progetto (vale a dire, un singolo metodo di ~ 70 righe) avrà un impatto negativo sulla qualità della revisione del codice e sulla manutenibilità del codice finale.

P.S. Non cerco consigli di diritto professionale, solo alcune linee guida basate sul senso comune per questa situazione, preferibilmente con esempi di altri progetti open-source.

    
posta nvamelichev 01.12.2014 - 22:18
fonte

2 risposte

3

Il modo più semplice per aggirare il problema è documentare ciò che ti occorre per la funzione, quindi fornire le specifiche al tuo collega e chiedere loro di riscriverlo. Settanta righe non sono una tonnellata da riscrivere, ma se dovessi riscriverlo adesso sapresti come l'ha fatto Apache e possibilmente (involontariamente) copiare il loro codice o modo di farlo. Se pensi che il codice di Apache sia così grande che preferiresti avere il loro codice, devi giocare con il set completo di regole che hai già delineato - non c'è proprio un modo per aggirarlo.

    
risposta data 01.12.2014 - 23:11
fonte
0

Alla fine ho scelto di aggiungere Ant ( org.apache.ant:ant ) come dipendenza e di inserirlo in uberjar con maven-shade-plugin . In questo modo viene riutilizzato il codice originale (che era il mio obiettivo) e license-maven-plugin può scarica automaticamente tutte le licenze delle dipendenze del progetto . Esiste un piccolo inconveniente di aumento della dimensione uberjar, ma è trascurabile (~ 2 Mb per ant 1.9.4).

Alcuni commenti sul mio approccio originale:

  • Come da punto 4 del Licenza Apache 2.0, una copia della licenza deve essere inclusa . Anche il file NOTICE deve essere aggiunto, poiché ant ha già esso. Quindi non c'è " modo più compatto ma corretto " che ho cercato.
  • Copia dell'originale Commandline class verbatim, o aggiungendo Commandline class con il commento di licenza appropriato e solo i metodi che ho usato offrono una migliore leggibilità di aggiungere un commento di licenza sopra il corpo del metodo copiato.
risposta data 02.12.2014 - 17:54
fonte

Leggi altre domande sui tag