Perché i miei test non riescono a eseguire la migrazione da maven2 a Buildr?
Domanda
Ho un semplice progetto di maven2 java (sistema di inoltro JMS). Dopo che abbiamo rilasciato la prima versione, abbiamo scoperto che abbiamo passato più tempo a configurare Maven che in realtà codifica.
Per la prossima release abbiamo voluto ripulire il processo di costruzione e qualcuno ha suggerito la migrazione a costruttore. Così mi è stato affidato il compito di fare proprio questo.
setup I Buildr (1.3.4) in base alla documentazione sul loro sito web. E poi dalla radice del progetto, ho digitato il comando Buildr e poi informato Buildr per creare il file di configurazione in base alla mia pom.xml. Che ha elaborato fine e compilato tutto il codice. Tutto era sugo fino Buildr iniziato a correre i test. Ecco l'output:
Test framework error: taskdef class org.apache.tools.ant.taskdefs.optional.junit.JUnitTask cannot be found
Ovviamente la classe specificata non è nel mio percorso di classe. Tuttavia, la documentazione Buildr dice che tutti gli elementi necessari necessari ai test di base sono inclusi. La loro documentazione non dice che hanno bisogno di librerie specifiche per formica o una versione di formica. Anche se devo 1.7.0 formica installata (non incluso nel mio percorso di classe però).
Qualcuno ha visto questo prima?
Aggiornamento
Ho individuato il barattolo formica-optional infame sul repository Maven. Compresi che nelle mie opzioni test.with non ha risolto il problema.
L'esecuzione del comando Buildr con --trace dà questa informazione extra ...
Tests failed!
/pathtoruby/buildr-1.3.4/lib/buildr/core/test.rb:455:in `run_tests'
/pathtoruby/buildr-1.3.4/lib/buildr/core/test.rb:199:in `initialize'
Soluzione
Trovato il problema ... A quanto pare c'è una formica-junit.jar che è necessaria ma per qualsiasi motivo nel mio repository locale era di proprietà di root e non il mio account utente locale (sistema OSX). Così non è stato accessibile a Buildr. Ho eliminato gli articoli dal mio deposito locale e reran Buildr (è scaricato gli elementi necessari).
Aggiornamento
Anche questo ha causato un paio di altre questioni. Sembra che pochi altri oggetti nel mio deposito locale avevano strani permessi. Ho finito appena archiviazione mio repository Maven e lasciando che ricostruiscono esso. Questo risolto tutti i miei problemi. Ora ho un file di generazione bello che è di 25 linee di codice rispetto al mio precedente file di pom.xml che era più di 100 linee.
Altri suggerimenti
Si ottiene questo errore perché JUnitTask non è nel classpath. Io non sono molto familiare con Buildr quindi non posso dire se è necessario per di specificare i barattoli JUnit o no, ma se Buildr utilizza il classpath di sistema, prova ad aggiungere JUnit ad esso e vedere cosa succede.
Dopo aver verificato il tuo costruisce verrà eseguito con JUnit stato violato classpath, si può quindi provare a variare la configurazione fino a quando non viene eseguito come previsto, o lasciarlo così com'è.
Puoi pubblicare il riferimento alla parte relativa alla documentazione? Non ho visto nulla (nel mio molto breve lettura del sito) che dice che gli elementi necessari siano inclusi.
E 'possibile che non hai scaricato tutte le gemme? Se si esegue "aggiornamento gioiello --system" per aggiornare Ruby, allora "update gioiello Buildr" è possibile garantire che tutti sono stati installati le dipendenze richieste.