Il mio problema si è rivelato non solo l'espansione del file .ear in modo ricorsivo (ho scritto una classe Java per farlo - la ricorsione lo ha reso semplice.) Una volta che i file .ear sono stati espansi, devo diffare le directory per controllare per eventuali modifiche. Se cambia qualcosa di diverso da timestamp, so che la build sta producendo un binario diverso.
Il secondo problema è che il nostro processo di generazione genera centinaia di file .xml e le generazioni successive rigenerano i file .xml con gli elementi in ordine diverso. Non sono sicuro del perché. Quando espongo due file .ear creati da build back-to-back senza modifiche a nulla, il diff delle directory risultanti mostra centinaia di file .xml con diff, anche se sono funzionalmente equivalenti.
Oltre ad espandere i file .ear in modo ricorsivo, è necessario eseguire un diff ed escludere i file .xml in determinate directory. Ho pensato che diff Cygwin farebbero questo, ma l'interruttore --exclude non riconosce alcun informazioni sul percorso:
Cygwin diff won't exclude files if a directory is included in the pattern
Se non trovo una soluzione a questo scriverò un'altra classe Java per passo attraverso l'intera struttura di directory facendo un singolo livello diff in ogni directory ed escludendo i file .xml nelle directory appropriate.
Ho la sensazione che sto reinventando la ruota, ma non riesco a trovare una ruota in questo momento.
fonte
2011-01-06 21:50:09
Suggerirei di contattare il supporto di Beyond Compare. Sono molto reattivi nella mia esperienza e potrebbero essere in grado di aiutare. – TrueWill