Codice esterno - copia o usa il percorso?

1

Ho un sacco di codice necessario per diversi progetti: unità, file inclusi, risorse e altro ancora. Questi file sono scritti da me, scaricati o clonati con git e hanno il loro posto nella struttura delle directory.

Questi file (sorgente) devono essere accessibili durante la compilazione. Ora sto lottando con due diverse possibilità su come ciò può essere realizzato:

  • Copia i file rilevanti nell'albero dei sorgenti del progetto
  • Utilizza i file con un percorso (relativo)

Copia file

Pro

  • Il progetto può sempre essere compilato
  • Tutti i file necessari verranno sottoposti a git

Con

  • Non traggo benefici automatici dalle correzioni dei bug e devo controllare manualmente se ci sono nuove versioni
  • Copie dello stesso codice a vari livelli

Usa percorso

Pro

  • Le correzioni dei bug sono incluse automaticamente durante la prossima build
  • Non ho il controllo su quali file devono essere copiati ulteriormente

Con

  • Le principali modifiche nei file di riferimento possono rendere il mio progetto non compilabile
  • I file rilevanti del progetto sono mancanti nel repository

Come gestisci questo problema? C'è un modo per avere il meglio di entrambi i mondi?

Nel caso che sia importante: sto lavorando la maggior parte del tempo sotto Windows con Free Pascal, Forth, Assembler, Verilog.

    
posta Kitana 27.04.2018 - 22:21
fonte

1 risposta

3

Di solito queste cose vengono risolte creando un modulo comune da cui dipendono i tuoi progetti. Tali moduli possono essere caricati in un repository di risorse. Ad esempio in Java carichi i tuoi artefatti su Maven Central e li imposti utilizzando un Gradle file build o Maven pom. Ad esempio il tuo Maven pom dovrebbe contenere la seguente dipendenza:

<dependencies>
....
<dependency>
  <groupId>your-group</groupId>
  <artifactId>common-library</artifactId>
  <version>1.0.1</version>
</dependency>
...
</dependencies>

In questo modo puoi sviluppare la tua libreria comune separatamente e hai il controllo della versione appropriato. Le applicazioni che utilizzano la tua libreria comune possono dipendere da una versione specifica e nessun codice è duplicato!

Ora si dovrebbe notare che non è necessario caricare i propri artefatti in un repository centrale, in genere è possibile ospitarli localmente e ottenere gli stessi risultati. Devo notare che non ho mai lavorato con Free Pascal, ma credo che ci sia il Online Package Manager che potresti usare.

EDIT: In realtà penso che Online Package Manager sia specifico per i pacchetti Lazarus. Checkout questa risposta , raccomanda fppkg .

    
risposta data 27.04.2018 - 22:36
fonte

Leggi altre domande sui tag