2012-03-07 11 views
5

Sto usando jenkins con hudson cli tramite java. I desidera pulire una particolare directory prima di ogni generazione. Qualche idea ? Ho fornito il comando di manutenzione pacchetto pulito che pulisce la cartella di destinazione per ogni build. Quello che voglio è che voglio pulire qualche altra directory prima di ogni generazione. Come fare questo ?Come pulire una particolare directory prima che ogni build venga avviata in jenkins?

In Jenkins ho specificato URL del progetto Maven, che ll file di download per WorkSpace quando si costruisce. Quando fornisco il comando clean package, lo cancella la cartella target ogni volta durante la creazione. C'è un'altra cartella parallela alla cartella di destinazione. Voglio cancellare quella cartella che si trova all'interno del progetto Maven.

+1

Quale directory - è direttamente correlata alla build (area di lavoro, risorse utente, ecc.), Totalmente non correlata o semi-correlata (cioè, digitata dai parametri nella build, build_id, ecc.)? –

+0

ho aggiunto ulteriori informazioni. Grazie. – Muthu

+0

La soluzione di @ BrandonV funzionerà per te? In caso contrario, si prega di chiarire perché no. –

risposta

0

Nel pom.xml aggiungere il tag profilo come qui di seguito

<profiles> 
     <profile> 
      <id>ci</id> 
      <activation> 
       <activeByDefault>false</activeByDefault> 
      </activation> 
      <build> 
       <plugins> 
        <plugin> 
         <artifactId>maven-clean-plugin</artifactId> 
         <version>2.5</version> 
         <executions> 
          <execution> 
<id>default-clean</id> 
<phase>pre-clean</phase> 
<goals> 
    <goal>clean</goal> 
</goals> 
          </execution> 
         </executions> 
         <configuration> 
          <filesets xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
<fileset> 
    <directory>do_not_checkin/build</directory> 
    <includes> 
     <include>**/*</include> 
           </includes> 
    <followSymlinks>false</followSymlinks> 
          </fileset> 
          </filesets> 
         </configuration> 
        </plugin> 
       </plugins> 
      </build> 
     </profile> 
    </profiles> 

Durante l'esecuzione di commad basta eseguire il comando Maven mvn -Pci clean.

Quale utilizza il plugin pulito per cancellare una particolare directory, prima che inizi ogni generazione.

Possiamo pacchetto come mvn -Pci clean package.

Dopo aver pulito la directory, viene eseguita la fase del pacchetto.

6

Se si esegue la versione 1.433 o superiore, utilizzare i Pre Passi/post Steps nella sezione di configurazione del progetto, che si trova al di sopra e al di sotto di Build sezione , rispettivamente.

In caso contrario, installare M2 Extra Steps Plugin.

È possibile configurare maven-clean-plugin per gestire la pulizia.

Se non è possibile modificare il pom.xml, come indicato di seguito, è possibile utilizzare anche questo plugin.

+0

L'ho provato. Non so come farlo? La cartella diversa del progetto Maven deve essere cancellata ogni volta prima che inizi la costruzione. – Muthu

+1

Cosa hai provato? Non puoi semplicemente usare un comando batch/shell? Si prega di non deselezionare una risposta senza spiegare perché. – bvulaj

+0

Nel mio progetto di Maven mentre la generazione è generata, la cartella di destinazione viene cancellata e rigenerata di nuovo. Prima che ogni build venga avviata in jenkins, voglio pulire/eliminare una directory. Così, in Presteps, ho usato il comando shell per cancellare una directory. Funziona bene per la macchina Mac, non funziona per Windows. Voglio pulire/eliminare una directory senza codice dipendente dalla macchina. C'è un altro modo? – Muthu

3

È possibile aggiungere un LAVORO per pulire la directory che si desidera prima di ogni generazione. Ho usato ANT per questo, non ho idea di MAVEN. Anche questo non dipende dalla macchina.

+0

Cura di elaborare questo vecchio post? – OK999

3

Non sono sicuro di aver compreso correttamente la domanda, ma se si sta utilizzando il repository per eseguire il polling delle modifiche e prima di ogni nuova generazione si estrae tutto il progetto da repository è possibile utilizzare solo una delle opzioni denominate: " Emula il checkout pulito cancellando prima ... "In questo modo tutte le cartelle dovrebbero essere cancellate prima di ogni build.

In caso contrario, la risposta più semplice che mi viene in mente è semplicemente scrivere uno script CMD che esegua semplicemente il comando DEL su file/directory indesiderati ed eseguirlo come pre step o post step come comando batch di Windows .

Problemi correlati