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'
È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top