La mia domanda si riferisce al primo fattore del manifesto delle app di 12 fattori: il codice base. (vedi http://12factor.net/codebase).Rispetto del fattore codebase (dal manifesto dell'app 12-factor) per un'applicazione Gradle/Spring distribuita su Cloudfoundry o Heroku
TL; DR:
questo fattore afferma c'è un rapporto uno a uno tra le basi di codice e dispiega, quindi in questo caso, non dovresti usare la stessa base di codice (repository) per entrambe le applicazioni
Il mio requisito: Ho un'applicazione Spring del sito Web e un'applicazione batch Spring che condividono entrambi un codice comune, ad esempio il modello di dominio (classi di entità JPA). Devo essere in grado di condividere questo codice comune. E entrambe le applicazioni devono utilizzare la stessa versione del codice comune in qualsiasi momento.
Il mio attuale configurazione: Ho attualmente tre repository "top-level" su GitHub:
- modello di dominio (classi di entità JPA) pronti contro termine
- applicazione Sito pronti contro termine modello
- Domain directory/gradle project (incluso con
git subtree pull/push
)
- Domain directory/gradle project (incluso con
- Batch repo applicazione
- modello di dominio directory/progetto Gradle (incluso con
git subtree pull/push
)
- modello di dominio directory/progetto Gradle (incluso con
Si prega di notare, inoltre, che il modello di dominio repo vive separatamente (come sopra indicato), ma è nidificati anche all'interno del sito Web e dei repository delle applicazioni batch. Io uso un git subtree pull/push
per includere questo repository del modello di dominio come una directory e un progetto gradle negli altri due repository. La ragione di ciò è che Heroku costruisce il codice stesso dai repository.
Tutto questo è molto noioso e soggetto a errori.
Qualcuno può consigliare una soluzione migliore?
Non capisco davvero la tua domanda. Puoi abbatterlo ed essere più chiaro? – polka