Domanda

Ho una build di formiche che crea directory, chiama javac e tutte le cose normali.Il problema che sto riscontrando è che quando provo a eseguire una pulizia (eliminare tutto il materiale generato) l'attività di eliminazione segnala che non è stato possibile eliminare alcuni file.Quando provo a eliminarli manualmente funziona perfettamente.Apparentemente i file non vengono aperti da nessun altro processo ma la formica non riesce ancora a eliminarli.Cosa posso fare?

È stato utile?

Soluzione

Ho riscontrato questo problema una volta.È stato perché il file che ho provato a eliminare faceva parte di un file percorso di classe per un altro compito.

Altri suggerimenti

Dipende ...

  • Il processo Ant non dispone di autorizzazioni sufficienti per eliminare i file (in genere perché sono stati creati da un utente diverso, forse un utente di sistema).Prova a eseguire lo script Ant come utente amministrativo, utilizzando Esegui come.
  • Windows è davvero pessimo nel ripulire i blocchi dei file quando i processi muoiono o vengono uccisi;di conseguenza, Windows pensa che il file sia bloccato da un processo che è morto (o è stato ucciso).In questa situazione non puoi fare altro che riavviare.
  • Ottieni strumenti migliori per controllare lo stato del tuo sistema.Ti consiglio di scaricare il SysInternals strumenti e utilizzandoli al posto degli equivalenti Windows predefiniti.

L'utilizzo dell'attività Ant Retry mi ha aiutato.L'ho appena avvolto attorno all'attività Elimina.

Non dici se la tua build viene eseguita come utente attualmente connesso.In caso contrario, il fatto che explorer.exe o un altro processo abbia la directory mostrata può causare il blocco anche di esso.Ma eliminarlo nello stesso processo explorer.exe avrebbe successo.Prova Unlocker da http://ccollomb.free.fr/unlocker/ per vedere quali processi hanno bloccati i file/directory.

Ho affrontato lo stesso problema.
Non avevo alcun classpath impostato o antivirus in esecuzione sul mio computer.
Tuttavia, la versione ANT che stavo utilizzando era a 32 bit e la versione JDK che avevo installato era a 64 bit.
Ho installato un JDK a 32 bit e il problema è stato risolto.

C'è qualcosa del processo Ant che tiene aperti i file (o la directory)?Ciò causerebbe la situazione in cui potresti eliminarli dopo aver eseguito ant, ma non durante.

Le versioni di Ant precedenti alla 1.8.0 presentano un bug che porta a errori casuali durante l'operazione di eliminazione.Prova a utilizzare Ant 1.8.0 o versione successiva.

Puoi vedere i dettagli del bug qui https://issues.apache.org/bugzilla/show_bug.cgi?id=45960

Nel mio caso la pulizia delle formiche non funzionava da Eclipse, non era in grado di rimuovere i file di build.Lo vedo di tanto in tanto.Di solito riesce dopo un tentativo ripetuto.Questa volta no.Ho provato a eseguire Ant Clean dalla riga di comando, ma non è riuscito. Impossibile eliminare "impossibile eliminare".Deve essere stato Eclipse a trattenere il file problematico, quando sono uscito da Eclipse, la riga cmd è stata in grado di eliminare OK.

Ultimamente ho avuto spesso questo problema ed è casuale.Una volta funziona, la volta successiva non funziona.Sto utilizzando NetBeans (nel caso sia importante) e ho aggiunto molte attività extra a build.xml.Stavo riscontrando questo problema nell'attività -post-jar.Succederebbe quando chiamo unjar sul file, quindi elimino.Sospetto che NB stia tentando di scansionare il barattolo e questo ne causa il blocco.

Ciò che ha funzionato per me è rinominare immediatamente il jar all'inizio di -post-jar e aggiungervi un'estensione .tmp.Quindi chiamo unjar sul file temporaneo.Quando ho finito, rinomino di nuovo il nome del barattolo desiderato.

Anch'io ho avuto lo stesso problema e ho provato a eliminare manualmente le directory di build.Alla fine l'ho risolto rinominando l'artefatto .jar del mio progetto con un nome diverso dal nome del progetto stesso.Per esempio:il mio progetto era portale e la mia formica ha creato lo script per generare portale.jar, dove Eclipse Ant non era in grado di eliminare questo portale.jar.Quando ho modificato il mio build.xml per generare il mio .jar come portalenew.jar, Eclipse è stato in grado di eliminare questo portalenew.jar la prossima volta.Spero che questo ti aiuti.

È necessario eliminarlo manualmente in Windows.Ha funzionato per me.(Di solito i file da eliminare sono versioni precedenti di jar..Per esempio:se esistono httpcore.4.2.5.ja5r e httpcore.4.3.jar, tenterà di eliminare 4.2.5.jar)

ho riscontrato questo problema poiché il file che la formica stava tentando di eliminare veniva utilizzato da qualche altro servizio/processo.Ho interrotto il servizio e quindi lo script ant build è stato eseguito.

Nel mio caso, ho interrotto l'esecuzione del processo Java da Task Manager e ho eseguito nuovamente il file di build Ant.È stato possibile eliminare il file e la creazione ha avuto esito positivo.

Vedo problemi come questo troppo spesso da quando sono passato a Microsoft Windows 10.Rinominare il file immediatamente prima di rimuoverlo lo ha risolto per me:

<rename src="file.name" dest="file.name.old"/>
<delete file="file.name.old" />

Se hai git installato
apri la directory in git bash shell (cerca git bash all'inizio).
Quindi digita il comando bash per eliminare i file come

rm -r filename.xyz
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top