2012-05-13 2 views
5

Per mettere la domanda in un altro modo, Gradle impone determinate strutture di directory nel progetto che gestisce?Gradle può gestire build per progetti legacy senza dover ristrutturare le directory?

Ho un progetto legacy nel mio piatto e il compito è renderlo più facile da costruire e gestire. È un'applicazione Java EE multi-modulo. Ho trovato (e lo farò anche io sono sicuro) che l'attuale processo di costruzione è completamente distorto e totalmente una perdita di tempo.

Credo che questo sia il momento di raddrizzare le cose introducendo il sistema di gestione della build e la scelta è tra Maven e Gradle.

La maggior parte dei progetti utilizza la struttura di directory del progetto eclipse. Molti altri usano layout di directory diversi che finora non riesco a trovare il motivo. Utilizzando Maven, questo sarà un ostacolo dato che avremo bisogno di ristrutturare le directory per conformarci alla convenzione di Maven. Ristrutturare le directory potrebbe essere un enorme sforzo in più, dal momento che abbiamo bisogno di risolverlo anche sul CVS.

Quindi la domanda a Gradle.

risposta

1

Entrambi possono ospitare strutture di directory arbitrarie. IMO è più facile a Gradle e non ne vale la pena a Maven.

Detto questo, mi piace avere una struttura di directory imposto e, per la maggior parte, mi piace la struttura di Maven. È un problema con CVS a causa dei problemi di gestione delle directory, ma a lungo termine è utile passare a una struttura coerente tra i progetti.

6

Gradle utilizza la convenzione sulla configurazione che consente di fornire informazioni minime per creare il progetto se si segue il layout standard del progetto. Detto tutto è ancora configurabile utilizzando uno stile dichiarativo:

sourceSets { 
main { 
    java { 
     srcDir 'src/java' 
    } 
    resources { 
     srcDir 'src/resources' 
    } 
} 

}

perché si ha un vero e proprio linguaggio di programmazione si può fare quasi tutto.

+3

Si noti che questa directory _adds_ source anziché sostituirli. La sintassi per la sostituzione è 'srcDirs = ['src/java']' e 'srcDirs = ['src/resources']'. –