Sto pensando di cambiare un progetto Maven che gestisco con Apache-Ant/Ivy. Ho bisogno di più controllo sul processo di compilazione e mi sento molto frustrato con Maven. Per favore non commentare su quanto sia grande Maven. La mia domanda riguarda Ivy.Ant/Ivy per la costruzione del progetto
Vorrei creare un modello di build Ant "standard" che possa essere successivamente utilizzato per altri progetti con modifiche minime.
Creerò un repository "enterprise" centrale in cui possiamo posizionare librerie di terze parti che non sono disponibili nei repository Maven pubblici (ad esempio librerie commerciali, librerie Sun, librerie proprietarie, ecc.). Questo archivio aziendale sarà disponibile sulla nostra LAN locale, ma potrebbe non essere disponibile al di fuori dell'ufficio.
Ogni sviluppatore avrà un archivio privato in ~/.ivy/repository
. Mi piacerebbe che la build Ant aggiornasse automaticamente questo repository privato con le versioni modificate delle librerie dal repository enterprise.
In ~/.ivy/ant
, ho intenzione di inserire i moduli "standard" per includere nei singoli file di progetto build.xml
, utilizzando l'attività include
in Ant 1.8. Questi moduli forniranno cose come Scala
e Clojure
destinazioni di compilazione con versioni diverse per diverse versioni di Scala e Clojure (es .: scala-compile-2.9.1.xml
, clojure-compile-1.3.xml
, ecc.) I moduli di compilazione saranno disponibili nel repository aziendale e dovrebbero essere aggiornati automaticamente nei repository privati se loro cambiano
Ogni progetto seguirà un Maven struttura standard di directory: ${project}/src/main/java
, ${project}/target/classes
, ecc
In passato, ho provato con Ivy, ma la Formica costruire file ottenuto di essere molto grande (> 500 linee per la compilazione del modello file) e difficile da gestire/modificare. Spero che mettendo obiettivi standard nei loro moduli di compilazione nella directory ~/.ivy/ant
, posso evitare che il codice aumenti.
Questo può essere fatto? Sono lontano dalla base? L'unica documentazione che riesco a trovare su Ivy è sul sito web di Apache (http://ant.apache.org/ivy). C'è qualche altra documentazione disponibile, inclusi i libri?
Non penso che occorreranno repository privati per le librerie. Ivy gestisce la propria [cache] (https://ant.apache.org/ivy/history/latest-milestone/concept.html#cache) in ~/.ivy2, che manterrà aggiornata quando risolverà le dipendenze. – oers